SSISO Community검색 |
|
SSISO Community메뉴 |
|
SSISO Community카페 |
|
블로그 카테고리 |
|
|
책정보로 검색한 결과 |
|
등록일:2008-03-14 13:10:16 작성자:![](http://ssiso.net/cafe/club/charimage/thumb/ssiso10_char2.jpg) 제목:[책정보] JSF 인 액션 : 표준 UI 프레임워크 - 35,000원 |
|
![](http://kangcom.com/img/book/dot_icon.gif) |
도서 지수 (100 Point 만점) |
|
J2EE(EJB, JMS, JNDI, JTA) 종합지수 |
|
9 p |
30 위 |
|
|
![](http://kangcom.com/img/book/icon1.gif) |
도서특징 |
자바 웹 애플리케이션에 있어서의 표준 UI 기술로서 널리 사용될 JSF의 모든 것을 알아볼 수 있는 국내 유일한 기술서! Java
EE 5에 정식 포함될 컴포넌트 기술 표준인 JSF(JavaServer Faces)를 설명하는 'JSF 인 액션'은 JSR
252(JavaServer Faces 1.2)의 멤버인 Kito D. Mann이 저술한 『JavaServer Faces in
Action 』의 번역서이다. JSF 애플리케이션 제작에 필요한 모든 사항을 다루며, 실전 JSF 예제를 통해 UI 로직 및
애플리케이션 로직을 구현해본다. 자바 웹 애플리케이션에 있어서의 표준 UI 기술로서 널리 사용될 JSF의 모든 것을 알아볼 수
있는 국내 유일한 기술서이다.
JSF(JavaServer Faces)를 사용하면 HTTP 요청과 응답 대신 UI
컴포넌트와 이벤트를 통해 웹 애플리케이션을 효율적으로 개발할 수 있다. 버튼, 텍스트 박스, 체크박스, 데이터 그리드 등과 같은
JSF 컴포넌트들은 사용자의 요청들 사이에 유지되기 때문에, 상태를 관리하기 위한 별도의 번거로운 작업들이 필요 없다. 또한
JSF는 사용자의 입력과 애플리케이션 객체를 동기화 시킴으로써 웹 개발에 있어서의 지루한 또 다른 작업들을 자동으로 처리한다.
JSF
인 액션은 입문서이자 학습서이며, 편리한 참고서이다. 이 책은 많은 예제와 함께 JSF가 무엇인지, 어떻게 작동하는지, 그리고
스트럿츠, 서블릿, 포틀릿, JSP, JSTL 등의 기술 및 또 다른 프레임워크와 어떤 관계가 있는지 설명한다. 또한 표준
컴포넌트, 렌더러, 변환기, 검증기 등을 자세히 다루며, 그것들을 사용하여 탄탄한 애플리케이션을 만드는 방법을 제공한다. 이
책은 여러분이 지금 당장 JSF 애플리케이션 개발을 시작할 수 있도록 도와줄 것이다.
- JSF 위젯 사용 방법 - 기존의 애플리케이션 및 스트럿츠와 통합하는 방법 - 오라클, IBM, 썬의 JSF 도구 소개 - 커스텀 컴포넌트 및 렌더러의 제작 방법 - 변환기 및 검증기 제작 방법 - 모든 요소를 결합하여 JSF 애플리케이션을 개발하는 방법
[추천의 글]
이
글을 쓰고 있는 지금, 저는 2004년 JavaOne 컨퍼런스에서의 발표를 위해 업계에서 주도적인 사용자 인터페이스(UI)
컴포넌트 벤더들과 함께 작업하고 있는 중입니다. 우리의 발표에서 각각의 벤더들은 자사의 제품에서 어떻게 JavaServer
Faces(JSF)를 이용해 이득을 볼 수 있는지를 보여줄 것입니다. 저는 이 발표를 준비하면서 지난 3년간 우리가 JSF에
했던 일들과 관련한 몇 가지를 알게 됐습니다. 벤더들은 자사의 제품에 JSF를 적용시키기 위한 각자 나름대로의 방안을 갖고
있습니다. 그러나 그들 모두는 단호하고 명확하게도 한 목소리를 내고 있습니다. 그들은 웹 기반의 사용자 인터페이스를 위한 하나의
표준을 갖게 된다는 것에 안심한다는 사실입니다.
웹 기반의 UI를 위한 표준이 존재하지 않음으로 인해, 컴포넌트
벤더들은 플러그인하고자 하는 모든 통합 개발 환경(IDE)에 대해 각각의 특별한 코드를 작성해야 했습니다. 그러나 이제는
JSF라는 표준이 있으므로 모든 IDE는 그 표준을 준수하게 됐으며, 또한 표준을 따르는 모든 벤더들은 좀더 적은 노력으로
그들의 컴포넌트를 IDE에 플러그인할 수 있게 됐습니다. 물론 이 말은 여러분이 개발하는 모든 컴포넌트 역시 추가적인 작업
없이도 툴에 플러그인할 수 있다는 의미입니다.
JSF 표준 규약은 웹 UI 개발 분야에 있어서 주도적인 역할을 하는
공동체에 의해 개발된 것입니다. 우리는 UI 프레임워크에 대한 여러 접근방법들의 좋은 아이디어들만을 취했으며, 그것들을 응집된
한 덩어리로 만들었습니다. 표준에 있어서의 문제점은, 그 표준이 제시하는 방법대로 어떤 문제를 해결하는 것이 다소 복잡할 수
있다는 점입니다. JSF의 경우는 UI와 전혀 어울리지 않는 기술들의 집합 위에 구축되는, 사용하기 쉬운 UI 프레임워크를
제공합니다. 이는 표준 규약을 구현하기가 더욱 복잡해지도록 만듭니다. 다행히도 실제로 표준 규약을 구현하는 사람들은 상대적으로
그 구현체를 사용하는 사람들보다 그 수가 적습니다. 그러나 표준 규약을 자세히 알고 있으면 구현체를 사용하는데 있어서도 분명히
도움이 됩니다.
이 책의 저자인 키토(Kito)는 JSF의 다음 버전을 개발하는 전문가 그룹의 일원으로서, 기술
표준에 대해 잘 알고 있는 사람입니다. 키토는 JSF의 핵심 부가가치를 파악하고, 그것을 접근하기 쉽고 이해하기 쉽게 이 책에서
설명하고 있습니다. 여러분은 최고의 컴포넌트 모델, JSF의 잘 정의된 상태 관리 시스템, 그리고 자바빈(JavaBeans)과의
개념적 유사성을 포함하여, JSF가 갖는 다른 웹 UI 프레임워크와의 차별성을 알게 될 것입니다. 키토는 표준 규약에서 사용하고
있는 추상성(abstraction)에 대해 친숙합니다. 또한 더 중요한 점은 왜 우리가 그런 추상성을 사용해야 하는지를 그가 잘
이해하고 있다는 사실입니다. 표준 규약의 존재 이유를 이해함으로써 여러분은 보다 고차원적인 해석을 얻을 수 있게 됩니다. 예를
들어 2장의 ‘개념 연관도’를 보시기 바랍니다. 이는 JSF의 설계에 대한 이론적 설명을 이해할 수 있는 훌륭한 방법입니다.
키
토는 또한 이 기술이 시장에 어떻게 부합하는지를 잘 알고 있습니다. 이 말은 여러분이 가장 중요한 정보를 먼저 얻을 수 있다는
의미이며, 따라서 여러분의 임무를 신속하고 완전하게 수행하는 데 도움이 될 것입니다. 키토는 JSF의 기저에 있는 기술의 굳건한
기초를 빌드하는 데 충분한 시간을 들였으며, 따라서 JSF 개발을 처음부터 시작할 수 있도록 이 책을 만들었습니다.
마
지막으로 이 책은 최상급의 소프트웨어 기술 서적에서 기대할 수 있는 모든 것들을 갖췄습니다. JSF를 이해하는데 필요한 전체
틀을 제시하는 목차, 시간을 절약시켜주는 각 장별 목표와 요약, 그리고 여러분의 프로젝트에서 실제로 사용할 수 있는 예제들까지
말입니다. 다른 책에서는 볼 수 없었던 하나는 JSF를 현재 지원하고 있는 IDE에 대한 깊이 있는 관찰입니다. 이는 특히
가치가 있는 것인데, 왜냐하면 여러분이 일단 툴이 지원하는 기반 기술을 이해하기만 한다면 그 툴을 사용하여 여러분의 시간을
절약할 수 있기 때문입니다.
IDE에 대한 깊이 있는 정보 이외에도, 키토는 JSFCentral.com의
운영자로서의 그의 경험을 책 전체를 통해 제공하고 있습니다. JSFCentral 사이트는 다수의 글과 인터뷰, 그리고 업계 및
공동체가 JSF와 관련하여 제공하는 사항들의 상태를 나타내는 가장 최신의 그림이 포함된 높은 품질의 집합체입니다. 키토는
컴포넌트, 렌더 키트, 구현체 등을 다루는 부분들을 분리해서 설명하고 있습니다. 저는 여러분이 JSF 프로그래밍을 공부하는 데
있어서 JSFCentral 사이트와 이 책의 더없는 가치를 발견할 수 있으리라고 생각합니다.
- 에드 번스(Ed Burns), JSF 표준 규약 리드 |
![](http://kangcom.com/img/member/top.gif) |
![](http://kangcom.com/img/space.gif) |
![](http://kangcom.com/img/book/icon1.gif) |
저자소개 |
Kito D. Mann 키
토 맨(Kito D. Mann)은 엔터프라이즈 아키텍처, 교육 지도, 개발 등을 전문적으로 하는 컨설턴트이다. 12살의 어린
나이에 프로그래밍을 시작했고, 자바 관련 기술에 대한 다수의 글을 기고했으며, 사용자 그룹과 컨퍼런스 등에서 강의하기도 했다.
또한 포춘 500에 속하는 여러 기업체에서 컨설팅을 수행했으며, 교육용 애플리케이션 서비스 제공 사업의 최고 아키텍트로도
일했다. 또한 키토는 JSF Central 커뮤니티 웹 사이트의 설립자이며 JSF 1.2와 JSP 2.1 전문가 그룹의
멤버이기도 하다. 존스 홉킨스 대학에서 컴퓨터 과학 학사과정을 졸업했으며, 아내와 앵무새 두 마리, 고양이 네 마리와 함께
코네티컷주 스탬퍼드에서 살고 있다. 그는 여가시간에는 전자음악 장비를 사용한 미완성 작곡을 즐긴다.
[역자 소개]
이태상 eclipsians.net 생
물정보학(Bioinformatics)의 꿈을 품고 프로그래밍 공부를 시작했다가 연세대학교 생물학과 졸업 후 아예 IT 업계로
뛰어들어, 4년 이상을 J2EE/WebSphere 전문가로 일했으며 현재는 금융권 차세대 시스템 구축에 참여하고 있다. 저서 및
역서로는 ‘Practical EJB Programming with IBM WebSphere(2002, 이인티그레이션)’와 ‘톰캣
최종분석(2005, 에이콘출판사)’이 있으며, J2EE 정보 공유 사이트인 이클립시언즈닷넷(eclipsians.net)을
운영하고 있다.
[역자 서문]
J2EE
기반의 웹 시스템을 구축하는 대부분의 경우, 특히 C/S 환경에서 J2EE 환경으로 기간계 애플리케이션을 재구축하는 프로젝트의
경우, 항상 아키텍트와 개발자를 고민하게 만드는 것 중에 빼놓을 수 없는 것이 바로 UI 구현 방법의 문제일 것입니다. 중소
규모의 프로젝트에서는 개발자의 막노동을 전제로 하는 자바스크립트와 ActiveX의 남발을, 중급 규모 이상의 프로젝트에서는
표준적인 접근방법은 아예 포기한 채 써드파티 UI 솔루션이나 리포팅 툴(또는 둘 모두)을 도입하는 사례를 많이 봐왔습니다.
전자의 문제점은 UI 구현에 너무 많은 수작업이 동원됨으로써 개발 생산성과 애플리케이션 품질을 현저히 떨어뜨린다는 점이며,
후자의 문제점은 특정 벤더의 제품 및 또 하나의 특정 스크립트 언어에 완전히 의존함으로써 팀의 기술력 향상이나 유지보수성 및
확장성에 도움이 되지 않는다는 점입니다. J2EE 안에서 근본적으로 다른 두 기술(웹과 자바)이 공존하는 이상, 이 문제를
완벽하게 해결하기란 불가능할 것입니다. 그러나 JSF(JavaServer Faces)는 그 둘 사이의 관계를 훌륭한 컴포넌트
모델로서 엮어주었습니다. 이로써 개발자는 HTML 요소를 완전한 자바 컴포넌트로서 다룰 수 있게 됐으며, 어떤 써드파티 구현체나
컴포넌트를 사용하든 표준적인 방법으로 UI를 구성할 수 있게 됐습니다. Java EE 5에는 JSF 1.2가
컴포넌트 모델 기술로서 정식으로 포함됩니다. 비록 아직 Java EE 5가 완료(final release)되지는 않았지만,
IBM Rational Application Developer나 Oracle JDeveloper 등과 같은 J2EE
통합개발환경들은 이미 JSF를 지원하고 있습니다. 여러분은 이런 개발도구가 제공하는 구현체와 함께 JSF 애플리케이션을 개발할
수도 있으며, 또는 Apache MyFaces나 Sun의 RI 등의 구현체를 사용하여 J2EE 1.4 환경에서 JSF를 사용할
수 있습니다. 개발도구를 사용하지 않는다고 하더라도 JSF는 Struts처럼 쉽게 사용할 수 있습니다. JSF는 UI 컴포넌트
모델이자 동시에 MVC 아키텍처를 지원하는 웹 애플리케이션 프레임워크이기 때문입니다. JSF 1.2 표준규약
제정에 직접 참여하고 있는 저자의 이 책은 JSF의 거의 모든 것을 다루고 있다고 해도 과언이 아닙니다. 특히 이 책은 개발도구
없이 JSF를 사용하여 개발하는 것을 기준으로 설명하기 때문에, 개발도구가 없이는 JSF를 다루기 힘들다라는 흔한 오해를
불식시켜 줄 것입니다. 이 책을 집어 든, 한 발 앞서가는 여러분의 기술력에 큰 보탬이 되기를 바랍니다.
- 이태상 |
![](http://kangcom.com/img/member/top.gif) |
![](http://kangcom.com/img/space.gif) |
![](http://kangcom.com/img/book/icon1.gif) |
독자서평 |
![](http://kangcom.com/img/book/b_review.gif) |
![](http://kangcom.com/img/book/icon1.gif) |
독자서평 |
![](http://kangcom.com/img/book/b_review.gif) |
![](http://kangcom.com/img/book/icon1.gif) |
도서목차 |
1부 JSF로의 탐험
1장 JavaServer Faces 소개 1.1 RAD 세상 1.1.1 그렇다면 JSF란 무엇인가? 1.1.2 업계의 지원 1.2 기반 기술 1.2.1 HTTP 1.2.2 서블릿 1.2.3 포틀릿 1.2.4 자바빈 1.2.5 JSP 및 그 밖의 웹 페이지 표현기술 1.3 프레임워크, 프레임워크, 프레임워크 1.3.1 프레임워크가 필요한 이유 1.3.2 그녀는 '모델 2' 1.3.3 JSF와 스트러츠, 그 밖의 프레임워크 1.4 어디서나 존재하는 컴포넌트 1.5 Hello, world! 1.5.1 hello.jsp 분석 1.5.2 goodbye.jsp 분석 1.5.3 HelloBean 클래스 분석 1.5.4 faces-config.xml 파일 설정 1.5.5 web.xml 파일 설정 1.6 요약
2장 JSF의 기초 2.1 핵심 사항 2.1.1 사용자 인터페이스 컴포넌트 2.1.2 렌더러 2.1.3 검증기 2.1.4 기반 빈 2.1.5 변환기 2.1.6 이벤트와 리스너 2.1.7 메시지 2.1.8 네비게이션 2.2 요청 처리 생명주기 2.2.1 단계 1: 뷰 복원 2.2.2 단계 2: 요청 값 적용 2.2.3 단계 3: 유효성 검증 처리 2.2.4 단계 4: 모델 값 갱신 2.2.5 단계 5: 애플리케이션 호출 2.2.6 단계 6: 응답 렌더링 2.3 컴포넌트 식별자 및 클라이언트 식별자의 이해 2.3.1 명명 컨테이너 2.3.2 참조 식별자 2.4 JSF 표현 언어 2.4.1 범위 변수의 이해 2.4.2 내장 변수의 사용 2.4.3 컴포넌트와 함께 EL 사용하기 2.5 요약
3장 워밍업: JSF의 이모저모 3.1 JSF 환경 설정 3.1.1 기본 요구사항 3.1.2 JSF 구현체의 선택 3.1.3 디렉토리 구조 3.1.4 설정 3.2 JSP의 역할 3.2.1 JSP 인클루드 사용하기 3.2.2 JSF를 JSTL 및 그 밖의 JSP 커스텀 태그와 함께 사용하기 3.3 빈의 생성 및 초기화 3.3.1 관리 빈 선언 3.3.2 List와 Map을 관리 빈으로 선언 3.3.3 값 바인딩 표현식으로 값 지정하기 3.4 페이지 바다의 항해 3.5 요약
4장 표준 컴포넌트로 시작하기 4.1 모든 것은 컴포넌트에 4.1.1 HTML 속성 사용하기 4.1.2 패싯의 이해 4.1.3 툴의 강력함 4.1.4 이면에 존재하는 렌더 키트 4.2 공통 컴포넌트 특성 4.3 UIViewRoot로 페이지 제어하기 4.4 UIParameter로 컴포넌트 파라미터 설정하기 4.5 Output으로 데이터 표현하기 4.5.1 HtmlOutputText로 평범한 텍스트 보여주기 4.5.2 태그로 UIOutput 사용하기 4.5.3 HtmlOutputLabel로 입력 레이블 만들기 4.5.4 HtmlOutputFormat으로 파라미터화된 텍스트 만들기 4.5.4 HtmlOutputLink로 하이퍼링크 보여주기 4.6 HtmlGraphicImage로 이미지 보여주기 4.7 HtmlMessage로 컴포넌트 메시지 보여주기 4.8 HtmlMessages로 다수의 애플리케이션 메시지 보여주기 4.9 Panel 컴포넌트로 그룹화 및 레이아웃 만들기 4.9.1 HtmlPanelGroup으로 컴포넌트 그룹화하기 4.9.2 HtmlPanelGrid로 테이블 만들기 4.10 요약
5장 입력 컴포넌트와 데이터 테이블 컴포넌트 5.1 이벤트 리스너 등록하기 5.1.1 값 변경 리스너 선언하기 5.1.2 액션 리스너 선언하기 5.2 공통 컴포넌트 특성 5.3 HtmlForm으로 폼 다루기 5.4 기본 사용자 입력 다루기 5.4.1 HtmlInputText로 기본 텍스트 필드 선언하기 5.4.2 HtmlInputTextarea로 메모 필드 만들기 5.4.3 HtmlInputSecret으로 암호 필드 만들기 5.4.4 HtmlInputHidden으로 히든 필드 만들기 5.5 HtmlSelectBooleanCheckbox로 체크박스 만들기 5.6 아이템 목록 정의하기 5.6.1 단일한 아이템을 위한 UISelectItem 5.6.2 다중 아이템을 위한 UISelectItems 5.7 다중 선택 아이템 다루기 5.7.1 HtmlSelectManyCheckbox로 체크박스 그룹 만들기 5.7.2 HtmlSelectManyListbox로 리스트박스 만들기 5.7.3 HtmlSelectManyMenu로 단일 아이템 리스트박스 만들기 5.8 단일 선택 아이템 다루기 5.8.1 HtmlSelectOneRadio로 라디오 버튼 그룹 만들기 5.8.2 HtmlSelectOneListbox로 단일 선택 리스트박스 만들기 5.8.3 HtmlSelectOneMenu로 콤보 박스 만들기 5.9 애플리케이션 명령 실행 5.9.1 HtmlCommandButton으로 버튼 만들기 5.9.2 HtmlCommandLink로 액션 링크 만들기 5.10 HtmlDataTable로 데이터 집합 표현하기 5.11 요약
6장 국제화, 검증기, 변환기 6.1 국제화와 지역화 6.1.1 지역화 살펴보기 6.1.2 리소스 번들 만들기 6.1.3 컴포넌트와 함께 리소스 번들 사용하기 6.1.4 백엔드 코드의 텍스트에 대한 국제화 6.2 입력값 검증 6.2.1 검증 메소드 사용하기 6.2.2 검증기 사용하기 6.2.3 표준 검증기 사용하기 6.2.4 여러 검증기의 조합 6.3 타입 변환 및 포맷팅 6.3.1 변환기 사용하기 6.3.2 표준 변환기로 작업하기 6.4 애플리케이션 메시지 커스터마이징하기 6.5 요약
2부 사용자 인터페이스 개발
7장 ProjectTrack 소개 7.1 요구사항 7.2 개념적 모델 7.3 사용자 인터페이스 7.4 개발팀 7.5 요약
8장 로그인 페이지 작성: 자바 코드 없이 사용자 인터페이스 개발하기 8.1 시작하기 8.1.1 web.xml의 설정 8.1.2 faces-config.xml의 설정 8.2 로그인 페이지 작성 8.2.1 HtmlGraphicImage와 HtmlOutputText 컴포넌트 추가 8.2.2 폼 추가 8.3 페이지에 멋 내기 8.3.1 버튼 이미지 사용하기 8.3.2 자바스크립트 추가하기 8.3.3 CSS 추가하기 8.4 검증기 추가하기 8.4.1 검증 메시지 커스터마이징 8.5 HtmlPanelGrid를 사용한 레이아웃 개선 8.6 요약
9장 나머지 페이지 작성: 자바 코드 없이 사용자 인터페이스 개발하기 9.1 커스텀 컴포넌트로 헤더 만들기 9.1.1 커스텀 툴바 컴포넌트 사용하기 9.1.2 네비게이션 규칙 설정하기 9.2 패널을 사용한 데이터 테이블 프로토타이핑 9.2.1 '인박스' 페이지 9.2.2 네비게이션 규칙 설정 9.2.3 '전체 보기' 페이지 9.2.4 네비게이션 규칙 설정 9.3 입력 폼 만들기 9.3.1 '프로젝트 승인' 페이지 9.3.2 네비게이션 규칙 설정 9.3.3 '프로젝트 기각' 페이지 9.3.4 네비게이션 규칙 설정 9.3.5 '프로젝트 생성' 페이지 9.3.6 네비게이션 규칙 설정 9.4 '프로젝트 상세보기' 페이지 9.4.1 네비게이션 규칙 설정 9.5 요약
10장 애플리케이션 기능 통합 10.1 JSF 개발 방식의 이해 10.2 애플리케이션 환경 알아보기 10.3 보안 적용을 위한 페이지 재구성 10.4 로그인 페이지 10.4.1 네비게이션 규칙 수정 10.5 헤더 10.5.1 네비게이션 규칙 수정 10.6 데이터 그리드 통합 10.6.1 '인박스' 페이지 10.6.2 '전체 보기' 페이지 10.7 입력 폼 통합 10.7.1 인클루드 수정 10.7.2 '프로젝트 승인' 페이지 10.7.3 '프로젝트 기각' 페이지 10.7.4 '프로젝트 생성' 페이지 10.8 ‘프로젝트 상세보기' 페이지 10.8.1 네비게이션 규칙 수정 10.9 에러 페이지 추가하기 10.9.1 web.xml 수정 10.9.2 네비게이션 규칙 수정 10.10 UI의 국제화 및 지역화 10.10.1 텍스트를 리소스 번들로 옮기기 10.10.2 헤더의 국제화 10.10.3 러시아어를 위한 지역화 10.11 요약
3부 애플리케이션 로직 개발
11장 11.1 서블릿에서 JSF까지 11.2 애플리케이션의 근간 11.2.1 Application 11.2.2 표현식 평가하기 11.3 모든 것이 컨텍스트 안에 11.3.1 FacesContext 11.3.2 FacesMessage 11.3.3 ExternalContext 11.4 이벤트 처리 11.4.1 FacesEvent 11.4.2 액션 이벤트의 처리 11.4.3 값-변경 이벤트의 처리 11.4.4 단계 이벤트의 처리 11.5 컴포넌트의 재조명 11.5.1 UIComponent 11.5.2 UIViewRoot 11.5.3 ValueHolder 11.5.4 EditableValueHolder 11.5.5 SelectItem 및 SelectItemGroup 모델 빈 11.6 요약
12장 애플리케이션 빌드: 설계 및 기초 클래스 12.1 애플리케이션의 계층 12.2 빈(bean) 요리하기 12.2.1 toString의 중요성 12.2.2 직렬화 12.2.3 모든 것이 특성 안에 12.2.4 빈 공개하기 12.3 비즈니스 계층 및 데이터 계층 분석 12.4 애플리케이션 계층 개발하기 12.4.1 상수 다루기 12.4.2 유틸리티 메소드 구성하기 12.4.3 싱글톤 초기화 12.4.4 비즈니스 객체의 적용 12.5 세션 유지를 위한 Visit 객체 작성 12.6 기초 기반 빈 클래스 개발 12.7 요약
13장 애플리케이션 빌드: 기반 빈, 보안, 국제화 13.1 기반 빈 작성 13.1.1 쓰레드 안전성 13.1.2 에러 처리 13.1.3 인증 수행 13.1.4 UIData를 통한 프로젝트의 목록화 및 리스너의 파라미터화 13.1.5 프로젝트 갱신 13.1.6 프로젝트 생성 13.1.7 UIData로 프로젝트 이력 보여주기 13.1.8 JDBC ResultSet과 UIData로 작업하기 13.2 보안 적용하기 13.2.1 컨테이너 기반 보안 vs. 커스텀 보안 13.2.2 커스텀 보안 사용하기 13.3 코드에서의 국제화 지원 13.3.1 리소스 번들을 통한 텍스트의 국제화 13.3.2 메시지의 국제화 13.4 설계 방식의 결정과 대안 13.4.1 비즈니스 계층으로의 접근 13.4.2 기능별로 빈 구성하기 13.4.3 액션 메소드를 기반 빈에서 구현 13.4.4 관리 빈 생성 설비를 통한 기반 빈 특성의 초기화 13.5 요약
14장 스트럿츠 및 기존 애플리케이션과의 통합 14.1 통합의 의미 14.2 JSF를 다른 프레임워크와 통합하는 경우 14.3 요청과 응답의 다양한 얼굴 14.4 JSF와 스트럿츠 애플리케이션의 통합 14.4.1 첫 단계 14.4.2 스트럿츠 JSP 태그 변경 14.4.3 JSF 액션 메소드와 관리 빈 사용하기 14.4.4 누가 누구를 제어하는가? 14.5 스트럿츠를 사용하지 않는 애플리케이션과 JSF와의 통합 14.6 요약
4부 커스텀 컴포넌트, 렌더러, 검증기 및 변환기 작성
15장 JSF 환경: 컴포넌트 개발자의 관점 15.1 UI 확장의 열반으로 가는 세 단계 15.2 UI 컴포넌트 개발 15.2.1 UI 컴포넌트의 제작 여부 결정 15.2.2 클래스와 인터페이스 15.2.3 메소드 바인딩을 사용한 이벤트 처리 15.2.4 등록 15.2.5 JSP와의 통합 15.3 렌더러 개발 15.3.1 렌더러의 작성 여부 결정 15.3.2 Renderer 15.3.3 RenderKit 15.3.4 등록 15.3.5 JSP 통합 15.4 검증기 개발 15.4.1 Validator 15.4.2 등록 15.4.3 JSP 통합 15.5 변환기 개발 15.5.1 Converter 15.5.2 등록 15.5.3 JSP 통합 15.6 국제화 다루기 15.7 UI 확장 컴포넌트의 패키징 15.7 요약
부록A JSP 없이 JSF 사용하기 |
![](http://kangcom.com/img/member/top.gif) |
![](http://kangcom.com/img/space.gif) |
![](http://kangcom.com/img/book/icon1.gif) |
저자소개 |
Kito D. Mann 키
토 맨(Kito D. Mann)은 엔터프라이즈 아키텍처, 교육 지도, 개발 등을 전문적으로 하는 컨설턴트이다. 12살의 어린
나이에 프로그래밍을 시작했고, 자바 관련 기술에 대한 다수의 글을 기고했으며, 사용자 그룹과 컨퍼런스 등에서 강의하기도 했다.
또한 포춘 500에 속하는 여러 기업체에서 컨설팅을 수행했으며, 교육용 애플리케이션 서비스 제공 사업의 최고 아키텍트로도
일했다. 또한 키토는 JSF Central 커뮤니티 웹 사이트의 설립자이며 JSF 1.2와 JSP 2.1 전문가 그룹의
멤버이기도 하다. 존스 홉킨스 대학에서 컴퓨터 과학 학사과정을 졸업했으며, 아내와 앵무새 두 마리, 고양이 네 마리와 함께
코네티컷주 스탬퍼드에서 살고 있다. 그는 여가시간에는 전자음악 장비를 사용한 미완성 작곡을 즐긴다.
[역자 소개]
이태상 eclipsians.net 생
물정보학(Bioinformatics)의 꿈을 품고 프로그래밍 공부를 시작했다가 연세대학교 생물학과 졸업 후 아예 IT 업계로
뛰어들어, 4년 이상을 J2EE/WebSphere 전문가로 일했으며 현재는 금융권 차세대 시스템 구축에 참여하고 있다. 저서 및
역서로는 ‘Practical EJB Programming with IBM WebSphere(2002, 이인티그레이션)’와 ‘톰캣
최종분석(2005, 에이콘출판사)’이 있으며, J2EE 정보 공유 사이트인 이클립시언즈닷넷(eclipsians.net)을
운영하고 있다.
[역자 서문]
J2EE
기반의 웹 시스템을 구축하는 대부분의 경우, 특히 C/S 환경에서 J2EE 환경으로 기간계 애플리케이션을 재구축하는 프로젝트의
경우, 항상 아키텍트와 개발자를 고민하게 만드는 것 중에 빼놓을 수 없는 것이 바로 UI 구현 방법의 문제일 것입니다. 중소
규모의 프로젝트에서는 개발자의 막노동을 전제로 하는 자바스크립트와 ActiveX의 남발을, 중급 규모 이상의 프로젝트에서는
표준적인 접근방법은 아예 포기한 채 써드파티 UI 솔루션이나 리포팅 툴(또는 둘 모두)을 도입하는 사례를 많이 봐왔습니다.
전자의 문제점은 UI 구현에 너무 많은 수작업이 동원됨으로써 개발 생산성과 애플리케이션 품질을 현저히 떨어뜨린다는 점이며,
후자의 문제점은 특정 벤더의 제품 및 또 하나의 특정 스크립트 언어에 완전히 의존함으로써 팀의 기술력 향상이나 유지보수성 및
확장성에 도움이 되지 않는다는 점입니다. J2EE 안에서 근본적으로 다른 두 기술(웹과 자바)이 공존하는 이상, 이 문제를
완벽하게 해결하기란 불가능할 것입니다. 그러나 JSF(JavaServer Faces)는 그 둘 사이의 관계를 훌륭한 컴포넌트
모델로서 엮어주었습니다. 이로써 개발자는 HTML 요소를 완전한 자바 컴포넌트로서 다룰 수 있게 됐으며, 어떤 써드파티 구현체나
컴포넌트를 사용하든 표준적인 방법으로 UI를 구성할 수 있게 됐습니다. Java EE 5에는 JSF 1.2가
컴포넌트 모델 기술로서 정식으로 포함됩니다. 비록 아직 Java EE 5가 완료(final release)되지는 않았지만,
IBM Rational Application Developer나 Oracle JDeveloper 등과 같은 J2EE
통합개발환경들은 이미 JSF를 지원하고 있습니다. 여러분은 이런 개발도구가 제공하는 구현체와 함께 JSF 애플리케이션을 개발할
수도 있으며, 또는 Apache MyFaces나 Sun의 RI 등의 구현체를 사용하여 J2EE 1.4 환경에서 JSF를 사용할
수 있습니다. 개발도구를 사용하지 않는다고 하더라도 JSF는 Struts처럼 쉽게 사용할 수 있습니다. JSF는 UI 컴포넌트
모델이자 동시에 MVC 아키텍처를 지원하는 웹 애플리케이션 프레임워크이기 때문입니다. JSF 1.2 표준규약
제정에 직접 참여하고 있는 저자의 이 책은 JSF의 거의 모든 것을 다루고 있다고 해도 과언이 아닙니다. 특히 이 책은 개발도구
없이 JSF를 사용하여 개발하는 것을 기준으로 설명하기 때문에, 개발도구가 없이는 JSF를 다루기 힘들다라는 흔한 오해를
불식시켜 줄 것입니다. 이 책을 집어 든, 한 발 앞서가는 여러분의 기술력에 큰 보탬이 되기를 바랍니다.
- 이태상 |
![](http://kangcom.com/img/member/top.gif) |
![](http://kangcom.com/img/space.gif) |
|
|
|
|
|
|