본문내용 바로가기

KYOBO 교보문고

책 다시 숲
교보문고 기프트카드
  • 교보아트스페이스
  • 북모닝책강
HEAD FIRST SERVLETS & JSP(개정판)
* 중고장터 판매상품은 판매자가 직접 등록/판매하는 상품으로 판매자가 해당상품과 내용에 모든 책임을 집니다. 우측의 제품상태와 하단의 상품상세를 꼭 확인하신 후 구입해주시기 바랍니다.
912쪽 | B5
ISBN-10 : 8979146639
ISBN-13 : 9788979146639
HEAD FIRST SERVLETS & JSP(개정판) 중고
저자 케이시 시에라 | 역자 김종호 | 출판사 한빛미디어
정가
32,000원
판매가
28,800원 [10%↓, 3,200원 할인]
배송비
2,500원 (판매자 직접배송)
200,000원 이상 결제 시 무료배송
지금 주문하시면 2일 이내 출고 가능합니다.
토/일, 공휴일을 제외한 영업일 기준으로 배송이 진행됩니다.
2009년 2월 27일 출간
제품상태
상태 최상 외형 최상 내형 최상

[상태 상세 항목] 선택 해당 사항있음 미선택 해당 사항없음

1.외형 상세 미선택 낙서 미선택 얼룩 미선택 접힘 미선택 낙장(뜯어짐) 미선택 찢김 미선택 변색 미선택 제본불량 미선택 부록있음 [중고 아닌 신간입니다.]

2.내형 상세 미선택 낙서 미선택 얼룩 미선택 접힘 미선택 낙장(뜯어짐) 미선택 찢김 미선택 변색 [출간 20090227, 판형 202x234, 쪽수 912]

이 상품 최저가
20,000원 다른가격더보기
새 상품
28,800원 [10%↓, 3,200원 할인] 새상품 바로가기
수량추가 수량빼기
안내 :

중고장터에 등록된 판매 상품과 제품의 상태는 개별 오픈마켓 판매자들이 등록, 판매하는 것으로 중개 시스템만을 제공하는
인터넷 교보문고에서는 해당 상품과 내용에 대해 일체 책임을 지지 않습니다.

교보문고 결제시스템을 이용하지 않은 직거래로 인한 피해 발생시, 교보문고는 일체의 책임을 지지 않습니다.

중고책 추천 (판매자 다른 상품)

더보기

판매자 상품 소개

※ 해당 상품은 교보문고에서 제공하는 정보를 활용하여 안내하는 상품으로제품 상태를 반드시 확인하신 후 구입하여주시기 바랍니다.

(신간) Head First ServletsnJSP-상상력을 자극하는 몰입의 학습법 개정판 [중고 아닌 신간입니다.]

판매자 배송 정책

  • 토/일, 공휴일을 제외한 영업일 기준으로 배송이 진행됩니다.

더보기

구매후기 목록
NO 구매후기 구매만족도 ID 등록일
318 잘 받았습니다. cd 누락되었을까봐 걱정이 조금 되었는데 빠짐없이 잘 왔습니다. 5점 만점에 5점 lani5*** 2019.12.14
317 만족합니다........... 5점 만점에 3점 daro*** 2019.12.13
316 감사합니다감사합니다감사합니다 5점 만점에 5점 joong*** 2019.12.13
315 감사합니다 책 잘 수령했습니다 5점 만점에 5점 ggoodd*** 2019.12.11
314 잘 받았습니다. 감사합니다. 5점 만점에 5점 magnum8*** 2019.12.05

책 소개

상품구성 목록
상품구성 목록

HEAD FIRST!

케이시 시에라, 버트 베이츠, 브라얀 바샴의 『HEAD FIRST SERVLETS & JSP』. 최신 J2EE 1.5 썬 인증 웹 컴퓨넌트 개발자(Sun Certified Web Component Developer) 시험, 즉 최신 J2EE 1.5 SCWCD 시험을 준비하고 있는 사람들을 위해 저술된 것이다.

이 책은 상상력을 자극하는 몰입의 학습법으로 최신 J2EE 1.5 SCWCD 시험에 합격할 수 있도록 인도하고 있다. 개인적인 대화를 하는 듯한 문체를 사용함으로써 집중력을 향상시켜준다.

아울러 그림을 풍부하게 곁들여 시각적으로 편집하는 등 뇌가 작동하는 방식대로 구성하여 학습에 효율성을 높였다. 연습문제뿐 아니라, 최종모의고사도 수록함으로써 실전 감각도 익히게 해준다. 최신 J2EE 1.5 SCWCD 시험에 맞게 업그레이드를 끝냈다.

저자소개

저자 케이시 시에라(Kathy Sierra)

케이시는 게임 설계를 하던 시절(Virgin, MGM, Amblin' 등에서 게임을 제작했습니다)부터 학습 이론에 관심이 있었습니다. UCLA 평생교육원의 엔터테인먼트 연구 프로그램에서 뉴 미디어 제작 강의를 하는 동안에 헤드 퍼스트 포맷의 상당 부분을 개발했습니다. 최근에는 썬 마이크로시스템즈에서 썬의 자바 강사들에게 자바 최신 기술을 가르치는 방법을 가르치는 수석 강사로도 활동하고 있습니다. 그녀는 버트 베이츠와 함께 이 책에 있는 개념을 적극적으로 활용하여 수백여 명의 강사, 개발자, 심지어는 프로그래머가 아닌 일반인들에게도 강의를 하고 있습니다. 그리고 「소프트웨어 디벨로프먼트(Software Development)」의 2003년 생산성 대상을 수상하기도 한 전세계에서 가장 큰 자바 커뮤니티 웹사이트 가운데 하나인 javaranch.com의 공동 설립자이기도 합니다. 자바 잼 긱 크루즈(Java Jam Geek Cruise, geekcruises.com) 사이트에 가면 그녀가 강의하는 자바 클래스 강의를 볼 수 있습니다.


버트 베이츠(Bert Bates)

버트는 소프트웨어 개발자와 설계자로 활동하고 있지만 십여년 전부터 인공 지능에 관심을 두고 있었기 때문에 학습 이론과 학습 기술을 바탕으로 한 교육 및 훈련에 대해 지대한 관심이 있습니다. 그는 아주 오래 전부터 고객들에게 프로그래밍을 가르치고 있습니다. 최근에는 몇 가지 자바 자격증 시험의 개발팀에서 일하기도 했습니다.


브라얀 바샴(Bryan Basam)

브라얀은 NASA에서 AI(인공지능) 기술을 이용한 진보적인 자동화 소프트웨어를 개발하는 것까지 포함하여 근 20년간 소프트웨어 개발에 몸 담아 왔습니다. 또한 객체지향 비즈니스 애플리케이션 개발을 하는 컨설팅 회사에 근무하기도 했습니다. 현재 브라얀은 자바 및 OO 디자인 패턴에 관련된 썬 교육 과정을 개발하고 있습니다. 그는 JDBC, J2EE, 서블릿 및 JSP 그리고 OO 소프트웨어 개발까지 광범위한 교육 과정 개발에 참여하고 있습니다. 여기에 현재 SCWCD 및 신규 버전 SCWCD 시험의 선임 디자이너 역할을 하고 있습니다.


역자 김종호

중이 제 머리 못 깍는다고 했던가요? '이런 이런 책을 썼고, 번역했고, 무슨 무슨 프로젝트를 했으며...' 이렇게 과거로 현재를 대변해야 하는 것은 참으로 어려운 마무리라는 생각을 합니다.
어쨌든 몇 권의 책을 냈고 강의도 제법했습니다. 그리고 한빛미디어에서 『Head First Servlets & JSP』의 초판을 번역했습니다. 비록 힘들었지만, 꽤 반응이 좋어서 즐거운 작업이었죠.
현재는 소위 '기업 전산실'이란 곳을 IT의 최전방이라고 굳게 믿으며, 오늘도 고객과 행복한 전투 중입니다. 10년 전에도 프로그래머였고, 10년 후에도 그러고 싶습니다. 아니 프로그래머를 업으로 여기서 아예 전사하고 싶습니다(뜻대로 될런지는 두고 볼일이죠).
소총에 철모 대신 키보드에 모니터가 묘비로 적당할 듯...

목차

1. 서블릿과 JSP는 어디에 쓰는 물건인고?: 서문
학습 목표
웹 서버와 클라이언트는 무엇을 하나요, 어떻게 대화하죠?
2분짜리 HTML 가이드
HTTP 프로토콜. 넌 누구냐!
HTTP GET, POST 요청 및 HTTP 응답을 해부해보자.
URL로 웹 페이지가 어디 있는지 어떻게 알지?
웹 서버, 정적인 웹 페이지 그리고 CGI
서블릿의 신비를 벗겨보자: 작성, 배포, 실행
JSP는 ‘HTML에 자바를 넣을 순 없을까’라는 고민에서 탄생했다네요.

2. 웹 애플리케이션 아키텍처: 개요
학습 목표
컨테이너의 정체는 무엇이며 개발자에게 어떤 의미이죠?
코드는 어떤 모습일까?(무엇이 서블릿을 서블릿답게 만드는가)
서블릿에 이름을 붙인 뒤 DD에서 URL과 매핑하기
스토리: 밥은 지금 결혼정보 사이트를 만들고자 합니다(MVC 도입)
MVC 디자인 패턴은 이런 문제를 해결합니다.
실제 배포 서술자(DD)
J2EE에는 무엇이 들어 있나

3. 초 간단 미니 MVC 튜토리얼: 실전 MVC 애플리케이션
학습 목표
MVC 애플리케이션을 빌드해보자; 먼저 설계부터 하고...
개발 및 배포 환경을 만들어보자
제일 첫 화면 HTML 코드를 만들어 테스트하자
배포 서술자(DD)를 만들다
서블릿 컨트롤러를 생성, 컴파일, 배포, 테스트하다
모델 컴포넌트를 디자인, 빌드, 테스트하다
컨트롤러가 모델을 호출하도록 확장하다
뷰 컴포넌트를 만든 다음 배포하다(이것 JSP입니다)
서블릿 컨트롤러가 뷰 컴포넌트를 호출하도록 확장하다

4. 서블릿이 되어 보자: 요청과 응답
학습 목표
컨테이너 안에서 서블릿의 일생
서블릿 초기화와 스레드
그러나 서블릿의 본연의 임무는 GET, POST 요청을 핸들링 하는 것입니다
멱등이 아닌 요청 이야기.
GET 요청을 보낼지 POST 요청을 보낼지 어떻게 결정합니까?
파라미터 전송 및 사용하기
지금까지는 Request였고… 이제 Response에 대해 알아보죠.
Response 헤더에 값을 설정할 수도 값을 추가할 수도 있다네요.
리다이렉트 대 Request 디스패치
리뷰: HttpServletResponse

5. 웹 애플리케이션이 되어 보자: 속성과 리스너
학습 목표
초기화 파라미터와 위기에서 구해 준 ServletConfig
JSP에서 서블릿 초기화 파라미터는 어떻게 접근하나요?
위기에서 구해 준 컨텍스트 초기화 파라미터
ServletConfig와 ServletContext 비교
그녀가 원한 건 ServletContextListener였다
튜토리얼: 간단한 ServletContextListener 리뷰
개발한 리스너 컴파일, 배포 그리고 테스트
ServletContextListener에 대한 모든 것, 리뷰
리스너 8개: 컨텍스트 이벤트 리스너 말고 그 외...
정확히 속성이라는 것, 생존 범위라는 것이 무엇입니까?
속성 API 및 속성의 어두운 면들...
Context 생존 범위는 스레드-안전(thread-safe)하지 못하다?
어떻게 하면 컨텍스트 속성을 스레드-안전하게 만들 수 있나요?
동기화 해보겠다고요?
세션 속성은 스레드-안전한가?
SingleThreadModel의 폐해.
단지 Request 속성과 지역 변수만이 스레드 안전합니다.
Request 속성과 Request 디스패치

6. 대화 상태 유지하기: 빈/엔티티 동기화
학습 목표
실제 대화라고 생각해봅시다(세션이 어떻게 작동하죠)
세션 ID, 쿠키, 기타 세션에 대한 기초...
이럴 때 나타난 우리의 해결사: URL 재작성
세션이 오래되었네요: 음…그렇다면 어떻게 제거하면 될까?
쿠키는 세션을 사용하기 위해서만 필요하나요? 아니면 다른 데에도 쓰나요?
HttpSession 삶에 있어 주요 순간들.
HttpSessionBindingListener를 벌써 잊은 건 아니죠?
세션 이동
리스너 예제

7. JSP가 되어 보자: JSP 코드 작성하기
학습 목표
page 지시자와 “out”으로 초 간단 JSP 만들기
JSP 표현식, 변수 및 선언
이제 JSP가 만든 서블릿이 등장할 시간이 되었군요
out만이 내장 객체는 아닙니다.
JSP의 초기화와 일생
이와 관련해서, 3가지 지시자에 대한 얘기를 좀더 해보죠.
스크립틀릿이 왜 나쁘다는 거죠? EL 등장이요.
잠깐만... 아직 살펴보지 않은 JSP 요소가 있는데요: 액션

8. 스크립트가 없는 페이지: 스크립트가 없는 JSP
학습 목표
속성이 빈일 때
표준 액션: useBean, getProperty, setProperty
빈 참조에 다형성 기법을 사용할 수 있습니까?
이때 혜성처럼 나타난 속성 param
프로퍼티 변환
표현식 언어(EL)가 답이다!
도트(.) 연산자로 프로퍼티 및 맵 접근하기
[] 연산자는 도트 연산자 보다 막강합니다.
도트 연산자와 [] 연산자에 대한 기타 사항
EL 내장 객체
EL 함수와 널(null) 처리
재사용 가능한 템플릿 조각들 ? 2가지 “include”
표준 액션
그녀는 JSTL 태그를 몰랐던 것이다.(미리 보기)
빈 관련 표준 액션 및 include 리뷰

9. 막강한 커스텀 태그: JSTL 작성
학습 목표
스크립팅 없이 루핑 돌리기:
태그로 조건문 만들기
태그 사용하기
, 컨텐츠를 포함하기 위한 3가지 방법
포함할 컨텐츠 요리하기
으로도 똑같은 일을 할 수 있죠
하나면 하이퍼링크에 관련된 건 모두 다 할 수 있습니다.
나만의 오류 페이지를 만들어보자.
태그. 자바의 try/catch 문...
JSTL에도 없는 태그가 필요하다면?
태그에 주목해주세요.
태그 몸체에 들어 갈 수 있는 것들
태그 핸들러, TLD, JSP
taglib 지시자에 있는 는 그냥 이름입니다. 위치가 아닙니다.
JSP가 하나 이상의 태그 라이브러리를 사용한다면...

10. JSTL만으로 만족스럽지 않을 때: 커스텀 태그 만들기
학습 목표
태그 파일: include처럼 행동하지만, 좀더 개선된 방식...
컨테이너가 태그 파일을 찾는 곳
심플 태그 핸들러
태그 몸체에 표현식이 있다면...
아직도 클래식 태그 핸들러를 배울 이유가 있으니...
태그 핸들러 API
초 간단 클래식 태그 핸들러
클래식 태그 생명주기는 리턴값에 따라 달라집니다.
IterationTag에 몸체를 반복할 수 있는 기능이 들어있다네요.
TagSupport 메소드 디폴트 리턴값
DynamicAttributes 인터페이스
BodyTag에는 두 개의 메소드가 더 있으니...
태그와 태그가 협업해야 할 때가 있나니...
태그 핸들러에서 PageContext API 사용하기

11. 웹 애플리케이션을 배포해보자: 웹 애플리케이션 배포
학습 목표
배포 핵심: 어떤 녀석이 어디에 있어야 하나요?
WAR 파일
서블릿 매핑은 어떻게 동작할까요?
DD에 환영 파일 설정하기
DD에 오류 페이지 설정하기
DD에서 강제로 서블릿 초기화하기
XML에 부합하는 JSP 만들기: JSP 문서

12. 비밀스럽게, 안전하게: 웹 애플리케이션 보안
학습 목표
서블릿 보안의 4요소
HTTP 환경에서 어떻게 인증하는가
보안을 선언적으로 관리하는 이유 톱 10
웹 애플리케이션 보안 관련 규정은 누가 정하나요?
인가: 역할(롤)과 제약
인증: 4가지 방식
4가지 인증 방식
안전하게 데이터 전송하기: HTTPS가 답이다.
데이터 기밀성과 데이터 무결성을 분리하여 선언하기

13. 막강 필터: 랩퍼와 필터
학습 목표
누가 요청을 날렸는지 기록하는 필터를 만들어보자.
필터의 생명주기
필터 선언 및 순서 정하기
Response 출력을 압축하는 응답 필터
랩퍼 기초
실제 압축 필터 코드
압축 랩퍼 코드

14. 엔터프라이즈 디자인 패턴: 패턴과 스트럿츠
학습 목표
하드웨어 소프트웨어 문제 때문에 패턴이 있다.
소프트웨어 디자인 원칙부터 살펴보죠...
원격 모델 컴포넌트를 지원하기 위한 패턴
JNDI와 RMI, 후다닥 살펴보기
중간에 객체를 하나 집어 넣으면 어떨까요?
서비스 로케이터로 비즈니스 델리게이트를 단순화하자
트랜스퍼 오브젝트를 소개할 시간이군요.
비즈니스 티어 패턴
다시 살펴보자 MVC 패턴
맞습니다. 한마디로 말해 스트럿츠(와 프론트 컨트롤러)입니다
BeerAdvisor 애플리케이션을 스트럿츠로 리팩토링해보자
패턴 훑어보기

부록 A. 최종 모의고사

책 속으로

출판사 서평

소개 더 깊게 더 빠르게 학습하는 특별한 방법 최신 J2EE 1.5 버전 썬 인증 웹 컴포넌트 개발자(SCWCD) 시험을 준비하고 있나요? 서블릿과 JSP을 배우기가 힘드시다구요? 걱정 마세요. Head First Servlets ...

[출판사서평 더 보기]

소개

더 깊게 더 빠르게 학습하는 특별한 방법

최신 J2EE 1.5 버전 썬 인증 웹 컴포넌트 개발자(SCWCD) 시험을 준비하고 있나요?
서블릿과 JSP을 배우기가 힘드시다구요?

걱정 마세요. Head First Servlets & JSP가 곧바로 여러분의 머릿속에 집어 넣어드릴 겁니다. 이 보다 더 서블릿과 JSP를 빨리 그리고 깊게 배울 수 있는 방법은 아마 없을 겁니다. 그리고 가장 중요한 것은 배운 것을 바로 써 먹을 수 있는 능력까지 갖게 된다는 거죠. 왜 그 많은 비평가들이 이 책을 "책 장 넘기기에 바빴다"라고 하는지 이해가 갈 것입니다. 그렇다고 해서 시험보기 전날 반짝 공부하고, 다음 날 다 잊어버리는 그런 책은 절대 아닙니다.

예제 소스 및 한글 모의고사
www.hanb.co.kr/exam/1663


특징

왜 이 책을 톡톡 튀게 만들었나요?
새로운 개념 앞에서 이를 붙잡고 낑낑거리고 있는 독자를 생각했습니다. 그러고 있기에는 시간이 너무 아깝다는 생각을 했기 때문이죠. 그래서 인지 과학을 이용한 학습 이론의 최신 연구 결과인 여러 감각 기관을 동원한 학습 방법을 바탕으로 비주얼하게 구성했습니다. 책만 펼치면 몇 분안에 잠이 들고 마는 까만 글씨만으로 채워진 방식이 아니라 여러분의 뇌가 작동하는 진짜 방식대로 책을 구성했습니다.

1. 비주얼하게 만들자 : 단어만 있는 것보다는 그림을 사용하는 편이 기억하기도 좋고 학습 효과를 향상시키는데도 도움이 됩니다.(최대 89%까지 향상됨)
2. 개인적인 대화 형태의 문체를 사용하자 : 개인적인 대화를 나누는 듯한 문체로 설명하면 학습 후 테스트에서 40% 정도까지 더 나은 점수를 받을 수 있다고 합니다.
3. 더 깊이 생각할 수 있도록 만들자 : 뉴런을 활발하게 사용하지 않으면 머릿속에서 그리 특별한 일이 일어나지 않습니다. 항상 독자에게 문제를 풀고 결과를 유추하고 새로운 지식을 만들어낼 수 있는 동기, 흥미, 호기심, 사기를 불어넣을 수 있어야 합니다.
4. 독자가 계속해서 주의를 기울일 수 있도록 하자 : 사람의 두뇌는 언제나 일상적이지 않은 것, 재미있는 것, 특이한 것 등에 주의를 기울입니다. 어려운 기술적인 내용이라도 지루하지만 않다면 두뇌는 새로운 내용을 훨씬 빠르게 받아들일 수 있습니다.
5. 독자들의 감성을 자극하자 : 뭔가를 기억하는 능력은 그 내용이 얼마나 감성을 자극하는지에 따라 크게 달라집니다. “오 이럴 수가”, “내가 해 냈어!”와 같은 감정을 느낄 수 있다면 배우는 과정에 크게 도움이 된다고 합니다.


독자 대상

-. 자바 또는 자바 웹 프로그래밍을 공부하는 사람
-. SCWCD를 준비하는 수험생


추천평

“서블릿 기술에 대한 도입으로써 Head First Servlets & JSP 보다 더 나은 것이 없습니다. 당신이 자바로 웹 개발을 시작하길 원하거나 또는 쉽게 읽고 제대로 자바 웹 개발에 대해 공부하고 이해하고 싶다면, 서점에서 이 책을 뽑아 드는 것 말고는 딴 방법이 없을 것입니다”
- 올리버 로엘, SCJP, SCJD, SCBCD, SCWCD, SCEA

“수업 교재로 서블릿/JSP 책을 10권도 넘게 구매했지만, 어느 것 하나 맘에 딱 드는 것이 없었죠. 그러다가 지금 여러분 손에 쥔 바로 이 책, 보석과도 같은 교육적인 자료들로 구성된 Head First 책을 접한 다음부터 우리는 더욱 뛰어난 강사가 되었습니다”
- 필립 마퀴드, 벨기에 브뤼셀에 있는 루프 팩토리(Loop Factory) 선임 강사

“이제 자바 기술은 없는 데가 없을 정도죠? 모바일 폰, 카메라, 프린터, 게임기, PDA, ATM, 스마트 카드, 주유소, 운동 경기장, 의료 기기, 웹 캠, 서버 등. 현재 소프트웨어를 개발해야 하는데 자바를 모른다구요. 그렇다면 지금이 바로 Head First 바다에 빠져들 시간입니다”
- 스콧 맥닐리, 썬 마이크로 시스템 회장, 사장 겸 CEO

“조금 장난스럽기도 하면서 빠르게 읽을 수 있고, 재미있고, 매력적입니다. 읽다보면 정말 뭔가를 배울 수 있습니다”
- 켄 아놀드(Ken Arnold), 전직 썬 마이크로시스템즈 선임 엔지니어
『Java Programming Language』의 저자(자바 창시자인 제임스 고슬링(James Gosling)과 공저)

“어제 이 책을 받아서 집에 오는 길에 읽기 시작했는데... 책에서 눈을 뗄 수가 없었습니다. 헬스 클럽까지도 들고 가서 책을 보고 있었는데, 책을 읽으면서 웃고 있는 제 모습이 정말 이상하게 보였을 것 같네요. 이 책은 정말 ‘쿨’한 책입니다. 재미있으면서도 중요한 내용들을 꼭 집어서 설명하고 있습니다. 정말 놀라운 책입니다”
- 에릭 감마, IBM 수석 엔지니어(Distinguished Engineer), 『Design Patterns』저자



부별 내용


1 서블릿과 JSP는 어디에 쓰는 물건인고?
웹 애플리케이션은 이제 막 달아 오른 시장입니다. 수많은 GUI 애플리케이션이 전 세계 컴퓨터에 깔려 있습니다. 그 수가 얼마인지 알 수가 없을 정도죠. 웹 개발자들은 GUI 애플리케이션이 공통적으로 가지고 있는 문제인, 배포의 문제에 대해서는 이제 고민할 필요가 없게 되었습니다. 웹 애플리케이션은 브라우저만 가지고 있다면 누구든 실행할 수 있기 때문이지요. 하지만 이제는 서블릿이나 JSP를 사용해야 합니다. 정적인 페이지도 1999년 전까지는 그런대로 쓸 만 했습니다. 이제 웹사이트(web site)에서 웹 애플리케이션(web app)으로 갈아 타야 할 시간입니다.

2 웹 애플리케이션 아키텍처
서블릿은 도움이 필요합니다. 요청이 들어오면, 누군가 서블릿을 초기화해서, 요청을 처리할 새로운 스레드를 만들어야 합니다. 그러면 그 누군가는 서블릿의 doPost() 또는 doGet() 메소드를 호출하겠지요. 여기에 또 하나 이 두 메소드의 매개변수로 들어가는 HTTP Request와 HTTP Response 객체를 누군가가 생성해서 서블릿으로 넘겨주어야겠지요. 또한 누군가는 서블릿이 생성, 소멸하는 시점에서 리소스 관리도 해야 합니다. 그 누군가가 누구냐 하는 것인데, 바로 컨테이너입니다. 이 장에서는 웹 애플리케이션이 컨테이너 안에서 어떻게 돌아가는지 살펴보겠습니다. 아울러 MVC(Model-View-Controller) 디자인 패턴과 첫 만남도 준비되어 있습니다.

3 초 간단 미니 MVC 튜토리얼
MVC 웹 애플리케이션을 만들어서 배포해봅시다. 자 이제 팔을 걷어 붙이고 HTML 코드, 서블릿 컨트롤러, 모델(일반적인 자바 클래스), XML 배포 서술자(DD), JSP 뷰를 작성해봅시다. 그 다음 빌드하고, 배포한 다음 잘 돌아가나 테스트 하면 되겠죠. 그러나 이것을 하려면 먼저 배포 환경을 세팅해야 합니다. 여기에다가 서블릿 및 JSP를 배포할 수 있는 설정 및 톰캣에서 요구하는 사항 등을 설정한다는 군요. 여기서 해보는 것은 사실 매우 작은 초보적인 애플리케이션입니다. 그러나 작다고 얕보면 안됩니다. 그래도 MVC 패턴을 사용한 애플리케이션이니까요.

4 서블릿이 되어 보자
서블릿은 평생을 서비스 클라이언트로 삽니다. 서블릿이 하는 일은 클라이언트로부터 요청을 받아 이에 응답하는 일입니다. 요청은 아주 단순한 “환영 페이지를 보여주세요(GET)”에서부터 “제 장바구니 결제해주세요”라는 복잡한 것까지 다양하죠. Request 객체에는 사용자의 중요한 데이터들이 함께 들어있기 때문에, 서블릿은 어떻게 이 정보를 읽어오고, 사용할 것인지를 알아야 합니다. Response 객체는 브라우저가 화면에 정보를 출력하거나, 아니면 바이트(Byte) 정보를 내려받는 것과 같은 정보 전송 역할을 하기에 서블릿은 데이터를 어떻게 전송하는가도 미리 알고 있어야 합니다. 이도 아니면 다른 페이지, JSP, 아니면 다른 서블릿으로 요청을 넘겨 주어야겠지요.

5 웹 애플리케이션이 되어 보자
서블릿은 독불장군이 아니다. 웹 애플리케이션은 서비스를 제공하기 위하여 많은 컴포넌트들과 함께 협업합니다. 모델, 컨트롤러, 뷰 등이 있으며, 파라미터, 속성 등도 있습니다. 여기에 도우미(Helper) 클래스들까지. 그런데 이들을 어떻게 해야 서로 묶어 세울 수 있나요? 만약 공유해야 할 정보가 있다면 어떻게 해야 되지요? 정보를 숨겨야 된다면? 스레드 안전(Thread-Safe)을 보장하려면? 이걸 어떻게 하느냐에 따라 개발자의 삶이 달라집니다

6 대화 상태 유지하기
웹 서버에는 메모리가 없습니다. 웹 서버는 응답을 보낸 다음에는 당신이 누구였는지조차 잊어버립니다. 다음 번에 다시 요청을 해도, 그가 이전의 당신이었다는 것을 모르죠. 즉 웹 서버는 당신이 이전에 요청했다는 사실을 기억하지 못한다는 말이며, 당신에게 응답을 보냈다는 것도 기억하지 못합니다. 그러나 프로그램을 사용하다 보면 여러 번의 요청에 걸쳐서 클라이언트와의 대화 내용(state)을 기억할 필요가 있습니다. 고객이 상품을 선택하여 장바구니에 넣고, 결제하는 동작을 하나의 요청으로 처리할 수는 없지 않습니까?

7 JSP가 되어 보자
JSP, 서블릿이 되다. 개발자가 서블릿을 만들지는 않았지만, 컨테이너는 알아서 JSP를 서블릿 소스코드로 변환한 다음, 컴파일하여 완전한 서블릿 클래스로 탈바꿈시킵니다. 컨테이너가 알아서 하지만, 그래도 개발자는 JSP가 서블릿 소스코드로 어떻게 변환되는지 알고 있어야 합니다. 개발자가 JSP에 자바 코드를 직접 코딩할 수 있지만, 때에 따라서는 그렇지 못한 경우도 있습니다. 페이지 개발자가 자바를 모른다면 어떻게 하겠습니까? 그럼 무엇으로 소스코드를 작성하나요? 무엇으로든 작성했다면 이를 어떻게 자바코드로 바꾸나요? 이 장에서는 여섯 가지 서로 다른 JSP 요소들에 대하여 알아보겠습니다. 물론 각각 다 나름의 사용 목적이 있으며, 자신만의 문법 체계(syntax)를 가지고 있습니다. 이제까지 여러분 JSP 코드에는 없었던 것을 배우게 됩니다. 기대하세요.

8 스크립트가 없는 페이지
스크립팅을 잊어 버리세요. 웹 페이지 디자이너가 자바를 알아야만 할까요? 이는 서버측 프로그래밍을 하는 자바 프로그래머가 그래픽 디자이너 역할을 해야 한다는 것과 같지 않을까요? 여러분이 팀 내에서 자바 프로그래머고, JSP 안에 자바 코드들이 널려 있다고 한다면, “악몽 같은 유지보수”란 말이 낯설지 않을 겁니다. 이제 스크립트가 없는 페이지를 작성한다는 것이 불가능하지 않습니다. JSP 스펙 2.0부터는 더욱 쉬운, 더욱 유연한 방식으로 가능하지요. EL(표현식 언어)에 감사할 따름이지요. XPATH와 자바 스크립트(역자주: JSP 스펙 2.0에는 ECMAScript라고 언급함)에서 영감을 받아 만든 EL은 웹 디자이너들이 매우 친근하게 사용할 수 있습니다. 하지만 EL에는 몇 가지 함정이 있습니다. EL은 자바와 비슷해 보이지만, 그렇지 않은 부분도 있다는 것입니다. 자바에서 쓰던 문법이 EL에서는 다르게 동작하는 경우가 있으니 조심해야 합니다!

9 막강한 커스텀 태그
가끔 EL이나 표준 액션으로 안 되는 것도 있지요. 배열에 들어있는 데이터를 루프로 돌려서, HTML 테이블 형식으로 하나씩 출력하고 싶다면 어떻게 코딩해야 할까요? 물론 스크립틀릿으로 짜면 for 루핑을 돌면서 출력하는 구문을 단 몇 초안에 짤 수 있겠죠. 하지만 우리 목표가 스크립팅을 없애는 거란 것 잊지 않으셨죠? 이와 같이 EL이나 표준 액션으로 구현하기 어려운 것을 해결하기 위해 커스텀 태그를 사용합니다. 기쁜 소식은 이미 개발자들이 가장 필요로 할 것 같은 것을 이미 누군가 JSP 표준 태그 라이브러리(JSTL)로 만들어놨다는 것입니다. 이 장에서는 커스텀 태그 사용법에 대하여 익히고, 다음 장에서는 이를 한번 만들어보죠.

10 JSTL만으로 만족스럽지 않을 때
가끔 JSTL과 표준 액션만으로 충분하지 못한 경우가 있죠. 뭔가 자신만의 것을 만들고 싶은데, 그렇다고 해서 스크립팅으로 되돌아 가고는 싶지 않을 때가 있습니다. 이럴 경우 여러분만의 태그 핸들러를 작성할 수 있습니다. 페이지 디자이너가 여러분이 만든 태그를 사용하지만, 실제 뒤에서 돌아가는 모든 작업은 여러분이 작성한 태그 핸들러 클래스에서 돌아가지요. 자신만의 태그 핸들러를 작성하는 방법에는 3가지가 있습니다. 물론 배워야 할 것이 많겠지요. 그 중 두 개는 JSP 2.0에 처음 도입된 것으로, 굉장히 편리한 기능으로 많은 도움이 될 것입니다(심플 태그 및 태그 파일).

11 웹 애플리케이션을 배포해보자
이제 개발한 웹 애플리케이션을 배포할 때가 되었군요. 개발한 페이지는 손 볼대로 손을 봐서 윤이 반짝반짝 나는군요. 코드 테스트는 이미 완료했고, 튜닝도 끝냈고… 프로젝트 종료 발표가 2주 앞으로 다가왔군요.
이제 개발한 것들을 서버에 배포해야 할 텐데. 뭔 놈의 디렉토리는 이렇게 많고, 지켜야 할 규칙은 왜 이리도 많은지. 디렉토리 이름은 지었나요? 고객도 그 이름에 만족할까요? 고객이 원하는 대로 디렉토리를 만들면, 컨테이너가 제대로 찾아 갈까요?

12 비밀스럽게, 안전하게
지금 당신의 웹 애플리케이션이 위험에 처해 있다. 네트워크 곳곳에서 말썽을 피우는 문제아, 크랙커, 사기꾼, 범죄자들이 중요한 정보를 훔치거나, 이익을 취하거나 아니면 그냥 재미로 시스템을 뚫고 들어오려고 기를 쓰고 있습니다. 당신도 이런 나쁜 녀석들이 애써 구축한 온라인 상점 트랜잭션을 엿보거나, 신용카드 정보를 빼가는 것을 원치 않겠죠? 또 이런 녀석들이 특별 할인을 받기 위해 우수 고객도 아니면서 우수 고객인척 하는 것도 말이죠. 중요한 고객 정보를 빼내는 것도?

13 막강 필터
필터는 요청을 중간에서 가로챕니다. 요청(Request)을 중간에서 가로챌 수 있다는 것은 응답(Response)도 함께 가로챈다는 것을 의미합니다. 이 방식의 장점은 무엇보다도 서블릿이 눈치채지 못한다는 것이죠. 즉 클라이언트의 요청과 컨테이너가 서블릿의 service() 메소드를 호출하는 중간에 끼어 들기 때문에 무슨 일이 있었는지 모른다는 말이죠. 그런데 뭐 하려고 이러냐고요? 휴가라도 더 갔다 올 수 있나요. 당연하죠. 생각해보세요. 서블릿 수정하면서 보낸 그 많은 시간을... 이제 필터 하나만 수정하면 모든 서블릿에 다 적용이 되니 시간이 안 남겠어요. 예를 들어 모든 서블릿에 사용자가 날린 요청을 기록으로 남기고 싶다면 어떻게 하나요? 서블릿이 넘겨주는 출력 스트림에 무슨 작업을 하고 싶다면 어떻게 하나요? 필터를 사용하면 서블릿 코드에 손 하나 안 대고 이 모든 것이 가능합니다.

14 엔터프라이즈 디자인 패턴
누군가는 이 문제를 겪었습니다. 자바로 웹 애플리케이션 개발이 처음이라면, 운이 좋군요. 이제 J2EE 셔츠를 입고, 이 길을 걸어간 수 많은 개발자들이 흘린 땀과 지혜의 총화를 만나게 될 것입니다. J2EE 관련 패턴 그리고 일반 디자인 패턴 둘 다 현재 작성하고 있는 소스 코드에 응용할 수 있습니다. 웹 애플리케이션에서 가장 중요한 디자인 패턴인 MVC, 아주 폭 넓은 인기를 얻고 있는 프레임워크인 스트럿츠, 이를 사용하면 유연하며, 유지 보수성이 뛰어난 서블릿 프론트 컨트롤러를 만들 수 있습니다. 이 모든 것이 다 앞서 간 사람들의 덕분이란 것을 잊지 말고, 이제 여러분은 인생에 있어서 좀더 중요한 데 여러분의 시간을 보내세요.

부록 A J2EE 1.5 SCWCD 대비 실전 모의고사


관련 도서

『Head First Java 개정판』(한빛미디어, 2005)
『Head First EJB』(한빛미디어, 2005)
『UML과 JAVA로 배우는 객체지향 CBD 실전 프로젝트』(한빛미디어, 2009)
『클래스 구조의 이해와 설계』(한빛미디어, 2004)

[출판사서평 더 보기 닫기]

책 속 한 문장

회원리뷰

  • 여러 권의 JSP관련 서적을 봤는데 보통 문법이나 예제중심으로 해당스킬을 외우고 실습해보는 위주로 가니 막상...

    여러 권의 JSP관련 서적을 봤는데 보통 문법이나 예제중심으로 해당스킬을 외우고 실습해보는 위주로 가니 막상 실제 프로젝트를 진행을 할려고 하거나 에러사항에 대처하기가 너무 힘들었던거 같다.

     

    어슬픈 JSP초보자들에게 아주 기본적인 개념을 파악하고 JSP프로젝트를 바로 하더라도 어떻게 돌아가고 어떻게 대처해야 되겠다는 생각을 들게 해주는 책 같습니다.

     

    책속에 주로 시험위주로 많은 것을 설명하고 실험위주의 문제를 풀게는 되어있지만 개념파악과 JSP를 처음 시작하거나 시작했지만~ 조금 부족한 분들이 보기에는 아주 좋은 책 같습니다.

     

    차근차근 예제와 이미지를 읽어보면 아하~하는 말이 절로 나오게 하는 책인거 같습니다.

     

    초보자들에게는 적극 추천이고 ~ 중급자로 올라가는 분들도 한번 읽어서 개념파악과 기초를 한번더 다지는 기회가 됬으면 좋겠습니다.

교환/반품안내

※ 상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

교환/반품안내
반품/교환방법

[판매자 페이지>취소/반품관리>반품요청] 접수
또는 [1:1상담>반품/교환/환불], 고객센터 (1544-1900)

※ 중고도서의 경우 재고가 한정되어 있으므로 교환이 불가할 수 있으며, 해당 상품의 경우 상품에 대한 책임은 판매자에게 있으며 교환/반품 접수 전에 반드시 판매자와 사전 협의를 하여주시기 바랍니다.

반품/교환가능 기간

변심반품의 경우 수령 후 7일 이내, 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내

※ 중고도서의 경우 판매자와 사전의 협의하여주신 후 교환/반품 접수가 가능합니다.

반품/교환비용 변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
반품/교환 불가 사유

소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우(단지 확인을 위한 포장 훼손은 제외)

소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우 예) 화장품, 식품, 가전제품 등

복제가 가능한 상품 등의 포장을 훼손한 경우 예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집

소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)

디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우

시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우

전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우

1) 해외주문도서 : 이용자의 요청에 의한 개인주문상품이므로 단순 변심 및 착오로 인한 취소/교환/반품 시 해외주문 반품/취소 수수료 고객 부담 (해외주문 반품/취소 수수료는 판매정가의 20%를 적용

2) 중고도서 : 반품/교환접수없이 반송하거나 우편으로 접수되어 상품 확인이 어려운 경우

소비자 피해보상
환불지연에 따른 배상

- 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨

- 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

판매자
스떼
판매등급
특급셀러
판매자구분
일반
구매만족도
5점 만점에 5점
평균 출고일 안내
2일 이내
품절 통보율 안내
18%

바로가기

최근 본 상품