책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > 자바
· ISBN : 9788980544967
· 쪽수 : 1174쪽
· 출판일 : 2003-01-06
책 소개
목차
용어 대역표
들어가며
Week 1 J2EE와 EJB의 소개
1일째 N-티어 개발의 등장
모놀리식(monolithic) 개발
모놀리식 애플리케이션의 문제점
2-티어 시스템의 등장
2-티어 구조의 문제점
모듈화를 통한 복잡도 감소
컴포넌트 테크놀러지
모듈화의 장점
3-티어 구조의 장점
엔터프라이즈 컴퓨팅을 위한 모델
라이프 사이클
지속성
네이밍
트랜잭션
자바 2 엔터프라이즈 에디션(J2EE)
컴포넌트와 컨테이너
J2EE 표준 서비스
J2EE 블루 프린트
J2EE Compatibility Test Suite
J2EE의 미래
요약
Q&A
연습문제
2일째 J2EE 플랫폼과 역할
J2EE 플랫폼 복습하기
Sun Microsystems의 J2EE SDK 사용하기
J2EE SDK 1.3 설치하기
J2EE RI 시작하기
J2EE 및 Cloudscape 문제 해결하기
설치 디렉토리의 읽기 권한
서버 포트 충돌
J2EE RI와 Cloudscape 서버 종료하기
이 책에서 사용하는 그밖의 소프트웨어들
티어와 컴포넌트의 이해
비즈니스 티어
프리젠테이션 티어
웹 중심 컴포넌트
클라이언트 티어
스탠드얼론 클라이언트
컨테이너의 이해
컨테이너가 컴포넌트에게 제공하는 서비스들
HTTP(Hypertext Transfer Protocol)
HTTPS(HTTP over Secure Sockets Layer)
JDBC(Java Database Connectivity)
JTA(Java Transaction API)
JAAS(Java Authentication and Authorization Service)
JAXP(Java API for XML Parsing)
JNDI(Java Naming and Directory Interface)
JAF(JavaBeans Activation Framework)
JavaMail
JMS(Java Message Service)
Java IDL(Java Interface Definition Language)
RMI-IIOP(Remote Method Invocation over Internet Inter-Orb Protocol)104
커넥터 아키텍처
플랫폼의 역할 소개
J2EE 프로덕트 프로바이더
애플리케이션 컴포넌트 프로바이더
애플리케이션 어셈블러
애플리케이션 디플로이어
시스템 관리자
툴 프로바이더
J2EE 툴의 미래
J2EE 애플리케이션의 패키징 및 디플로이
J2EE 애플리케이션
모듈을 컴포넌트로 나누기
요약
Q&A
연습문제 : 사례 연구
Job Agency
Job Agency 사례 연구 활용
실제로 만들어 보는 것이 중요하다
부록 CD의 사례 연구 디렉토리
사례 연구 데이터베이스 설치하기
3일째 네이밍 및 디렉토리 서비스
네이밍 및 디렉토리 서비스
네이밍 서비스를 왜 사용하는가?
JNDI란?
일반적으로 사용되는 네이밍 서비스
명명 규칙
JNDI 사용하기
Sun Microsystems의 J2EE RI
이니셜 컨텍스트 얻기
이니셜 컨텍스트 네이밍 예외
JNDI 서비스 정의하기
JNDI 속성 파일
애플리케이션 속성
애플릿 파라미터
속성을 코드에 삽입하기
JNDI 오브젝트 바인딩
오브젝트 바인딩하기
바인딩에 발생하는 문제점
네임 지속성
오브젝트 리바인딩
오브젝트 언바인딩
오브젝트 리네이밍
JNDI 네임 룩업
컨텍스트 변경하기
RMI-IIOP 오브젝트 축소 변환(Narrowing)
컨텍스트
컨텍스트 리스팅
컨텍스트 생성 및 제거
그밖에 JNDI 네임에 대한 사항들
특수 문자
Composite 네임과 Compound 네임
URL
속성
LDAP X.500 네임에 대한 간략한 소개
LDAP 서버 얻기
OpenLDAP 사용하기
LDAP을 사용하도록 JNDI 설정하기
LDAP 서버 테스팅
디렉토리 컨텍스트 얻기
속성 읽기
오브젝트 검색
속성 조작
그밖에 오브젝트에 대한 사항들
코드 베이스로부터 클래스 로딩하기
코드 베이스 정의
레퍼런스
그밖에 JNDI로 할 수 있는 것들
JNDI 이벤트
보안
요약
Q&A
연습문제
4일째 EJB 소개
EJB란 무엇인가?
빈(Bean), 클라이언트(Client), 컨테이너(Container), 서버(Server)
EJB 전체 보기
EJB 살펴보기
EJB의 타입들
EJB의 일반적인 사용법
왜 EJB를 사용하는가?
복잡도 숨기기
비즈니스 로직을 UI와 데이터 액세스로부터 분리하기
컨테이너 서비스
EJB란 무엇인가?
비즈니스 인터페이스
비즈니스 로직
팩토리 정보
빈 메타데이터
EJB를 어떻게 생성하는가?
생성 메커니즘
코드 생성시 주의사항
디플로이할 수 있는 컴포넌트 생성하기
EJB를 어떻게 디플로이하는가?
컨테이너로 플러깅(plugging)하기
디플로이하기
EJB를 어떻게 사용하는가?
발견하기(Discovery)
검색하기(Retrieval)와 사용하기
EJB 배치하기
클라이언트 실행하기
J2EE Reference Implementation에서 EJB를 디플로이하고 사용하기
사례 연구 EAR 파일 열기
사례 연구 애플리케이션 살펴보기
사례 연구 애플리케이션 디플로이하기
사례 연구 애플리케이션 테스트하기
사례 연구 애플리케이션의 문제 해결하기
요약
Q&A
연습문제
5일째 세션 EJB
개요
세션 빈을 위한 javax.ejb 패키지
Stateless 세션 빈의 라이프 사이클
Stateless 세션 빈 명세하기
Stateless 세션 빈 구현하기
javax.ejb.SessionBean 구현하기
홈 인터페이스 메소드 구현하기
리모트 인터페이스 메소드 구현하기
예외(Exception)
Stateless 세션 빈 설정하고 디플로이하기
deploytool 사용하기
구조적인 요소
프리젠테이션 요소
세션 요소
엔터프라이즈 애플리케이션 디플로이하기
Stateful 세션 빈 라이프 사이클
Stateful 세션 빈 명세하기
Stateful 세션 빈 구현하기
비활성화(Passivation)
타임아웃
상태 연결하기
Stateful 세션 빈 설정하고 디플로이하기
클라이언트의 관점
패턴과 관용구(idiom)
비즈니스 인터페이스
어댑터(Adapter)
큰 덩어리(Coarse-Grained)
오늘 배운 것들
요약
Q&A
연습문제
6일째 엔티티 EJB
개요
다시보는 n-티어 구조
RDBMS와의 비교
엔티티 식별하기
엔티티 빈을 위한 javax.ejb 패키지
엔티티 빈 타입
리모트와 로컬 인터페이스
BMP 엔티티 빈의 라이프 사이클
BMP 엔티티 빈 명세하기
로컬-홈 인터페이스
로컬 인터페이스(Local Interface)
BMP 엔티티 빈 구현하기
javax.ejb.EntityBean 구현하기
로컬-홈 인터페이스 메소드 구현하기
로컬 인터페이스 메소드 구현하기
ID 생성하기
다시 보는 빈의 크기 결정하기(Granularity)
검색 메소드를 주의하자!
EJB 컨테이너의 성능 조율하기
BMP 엔티티 빈 설정하고 디플로이하기
엔티티 요소
클라이언트의 관점
다시 보는 세션 빈
패턴과 관용구(idiom)
인터페이스, 외관, 상태
엔티티 빈의 로컬 인터페이스 사용하기
독립적인 값 클래스
자기 캡슐화된 필드(Self-Encapsulated Fields)
검색 메소드에서 Enumeration을 사용하지 말라
늦게 얻고, 빨리 해제하기
다시 보는 비즈니스 인터페이스
오늘 배운 것들
요약
Q&A
연습문제
7일째 CMP와 EJB QL
컨테이너에 의해 관리되는 지속성의 개요
다시 보는 N-티어 구조와 CMP 필드들
사례 연구 데이터베이스에 관하여 짚고 넘어가기
CMP 엔티티 빈의 라이프 사이클
컨테이너에 의해 관리되는 관계(CMR)
관계 유형들
이동성(Navigability)
cmr-field
관계 다루기
EJB QL
선택 메소드(Select Method)
문법과 예제들
심화 노트
CMP 엔티티 빈 명세하기
로컬-홈 인터페이스
로컬 인터페이스
CMP 엔티티 빈 구현하기
javax.ejb.EntityBean 구현하기
로컬-홈 인터페이스 메소드 구현하기
로컬 인터페이스 메소드 구현하기
CMP 엔티티 빈 설정하기(configuring)
entity 요소(Element)
relationships 요소
CMP 엔티티 빈 디플로이하기
패턴과 관용구(idiom)
ejbLoad()/ejbStore()의 데이터를 정규화/비정규화하기
cmp-field를 밖으로 내보이지 말 것
cmr-field를 밖으로 내보이지 말 것
빈의 인터페이스를 통해서 참조 무결성(Referential Integrity)을 강제하기398
홈 메소드를 구현하기 위하여 선택 메소드를 사용하기
오늘 배운 것들
요약
Q&A
연습문제
Week 2 J2EE 애플리케이션의 개발
8일째 트랜잭션과 지속성
트랜잭션에 대한 개요
컨테이너에서 트랜잭션을 처리하도록 한 설정
빈에서 트랜잭션을 처리하도록 선언한 설정
동기와 제약사항
자바 트랜잭션 API 사용하기
BMTD 빈의 디플로이
클라이언트에서 다루어지는 트랜잭션
예외 다시 살피기
상태가 있는 세션 빈의 라이프 사이클
트랜잭션 : 내부 동작 원리
트랜잭션 관리자, 리소스 관리자, 그리고 2PC
JTA API
트랜잭션이 진행도중에 문제가 생기면 어떻게 처리되는가?
JTA와 JTS
지속성 관련 기술에 대한 개요
JDBC
SQLj
SQLj Part 0
SQLj Part 1
SQLj Part 2
JDO
JDO 개념
javax.jdo 클래스와 인터페이스
쿼리(Query)
다른 특징들
주의사항
요약
Q&A
연습문제
9일째 자바 메시지 서비스(Java Message Service)
메시징(Messaging)
메시지 전달하기
자바 메시지 서비스 API
JMS와 J2EE
JMS API 아키텍처
메시지 도메인
JBoss를 이용한 JMS 애플리케이션 개발
JBoss에서 JMS의 구현
J2EE RI를 이용한 JMS 응용 프로그래밍
J2EE RI 커넥션 팩토리
J2EE RI에 도착지 추가하기
J2EE RI에서 큐 생성하기
지점간 연결(point-to-point) 메시지 예제
JMS 메시지
메시지 생성하기
메시지 보내기
연결 닫기
JMS 텍스트 메시지 보내기 예제
메시지 소비하기
간단한 동기적 수신 예제
JMS 텍스트 메시지 수신 예제
비동기 메시징
발행/구독(publish/subscribe) 메시지 도메인
발행/구독(publish/subscribe) 메시징 예제
게시판 발행자
게시판 구독자
지속 구독 생성하기
추가적인 JMS 특성들
XML의 개요
XML은 무엇이고, 왜 XML을 사용해야 하는가?
요약
Q&A
연습문제
10일째 메시지 드리븐 빈(Message-Driven Beans)
메시지 드리븐 빈이란?
메시지 생성자 측면
다른 EJB와의 공통점과 차이점
메시지 드리븐 빈의 인터페이스 만들기
메시지 드리븐 빈의 라이프 사이클
메시지 드리븐 빈 컨텍스트
메시지 드리븐 빈 만들기
메소드 대기 풀(Method-Ready Pool)
빈 개체의 소멸
메시지 소비하기
예외 상황 처리하기
컨테이너 관리 트랜잭션과 빈 관리 트랜잭션
메시지 수신 확인
JMS 메시지 셀렉터
간단한 메시지 드리븐 빈 작성
인터페이스 구현
예제 실행하기
큐 생성하기
메시지 드리븐 빈 디플로이
메시지 생성을 위한 송신 클라이언트 생성
Agency 사례 연구 예제 개발
1단계 - 송신자 헬퍼 클래스
2단계 - Agency와 Register 세션 빈
3단계 - 메시지 드리븐 빈
4단계 - JMS 큐 생성
5단계 - EJB 디플로이
6단계 - ApplicantMatch 빈 테스트
다른 아키텍처의 사용
요약
Q&A
연습문제
11일째 JavaMail
이메일 이해하기
SMTP
POP3
IMAP
기타 프로토콜
MIME
JavaMail API에 대한 소개
개발 환경 설정하기
첫 번째 이메일 보내기
첫 번째 이메일 작성하기
멀티미디어 이메일의 생성
메시지 생성 : 첫 번째 방법
메시지 생성 : 두 번째 방법
첨부물이 있는 이메일 보내기
JavaMail API
메시지 수신
메시지 삭제
첨부물 수신
사용자 인증과 보안
요약
Q&A
연습문제
12일째 서블릿(Servlets)
서블릿의 용도와 사용법
웹 애플리케이션 만들기
서버와 플랫폼 독립성
효율성과 확장성
서버와 서블릿 통합
HTTP 소개
HTTP 구조
다른 HTTP 메소드
서버 응답
HTML 소개
서블릿 환경
서블릿 컨테이너
서블릿 클래스 계층도
간단한 서블릿 예제
서블릿으로 파라미터 데이터 넘기기
파라미터에 액세스하는 방법
파라미터를 사용한 서블릿 예제
POST 요청의 사용
서블릿의 라이프 사이클
서블릿 컨텍스트(Context)
웹 애플리케이션
웹 애플리케이션 파일과 디렉토리 구조
웹 애플리케이션 디플로이먼트 디스크립터
에러 다루기
HTTP 에러
서블릿 예외 상황 다루기
클라이언트와 상태 정보 유지
세션 오브젝트 사용
히든 폼 필드(Hidden Form Fields)
쿠키(Cookies)
쿠키 생성
URL 이어쓰기(URL Rewriting)
서블릿 필터링
필터(Filter) 프로그래밍
Auditing 필터 예제
필터 디플로이
이벤트 리스닝(Event Listening)
리스너 디플로이
서블릿 쓰레드
보안과 서블릿 샌드박스(Sandbox)
Agency 사례 연구
AgencyTable 서블릿 코드
AgencyTable 서블릿 디플로이하기
요약
Q&A
연습문제
13일째 자바서버 페이지(JavaServer Pages)
JSP는 무엇인가?
작업을 분리하자
해석과 실행
JSP 문법과 구조
JSP 요소
첫 번째 JSP 예제
JSP 문제들
JSP 라이프 사이클
JSP 에러의 검출과 수정
JSP 라이프 사이클 메소드
JSP 지시어
include 지시어
page 지시어
HTTP 서블릿 변수에 액세스하기
HTTP 요청 파라미터 사용하기
자바빈즈를 이용한 JSP 페이지의 단순화
자바 빈이란 무엇인가?
자바 빈의 정의
빈(bean)의 속성 얻어오기
빈(bean)의 속성 설정하기
빈의 초기화
직업 소개소 사례 연구에서 빈을 사용하기
웹 인터페이스를 직업 소개소 사례 연구에 추가하기
구조와 이동(navigation)
외양(Look and Feel)
에러 페이지 정의
사례 연구 JSP 디플로이하기
JSP와 서블릿의 비교
요약
Q&A
연습문제
14일째 JSP 태그 라이브러리
태그 라이브러리의 역할
간단한 커스텀 태그 개발하기
간단한 태그 사용하기
태그 라이브러리 디스크립터(TLD)
커스텀 자바 태그
doStartTag() 메소드
"Hello World" 커스텀 태그
태그 라이브러리 웹 애플리케이션을 디플로이하기
TLD 위치 정의하기
간단한 태그 사용하기
속성을 가진 태그
스크립트 변수를 정의하는 태그
반복적인 태그
협력(co-operating) 태그
공유된 스크립트 변수 사용하기
계층적인 태그 구조
TEI(Tag Extra Info) 객체를 정의하기
속성 검사하기
스크립트 변수 정의하기
태그 바디의 처리
자바서버 페이지 표준 태그 라이브러리(JSPTL)
J2EE RI로 JSPTL 사용하기
JSPTL forEach 태그를 사용하기
다른 JSPTL 태그들
JSPTL 스크립트 언어
다른 Jakarta 태그 라이브러리
요약
Q&A
연습문제
Week 3 J2EE와 엔터프라이즈의 통합
15일째 보안
보안의 소개
보안 용어
일반적인 보안 기술
대칭키 암호
비대칭형 암호
SSL과 HTTPS
체크섬과 다이제스트
전자 증명서
J2EE에서의 보안
J2EE 보안 용어
J2EE RI 보안 이용하기
보안과 EJB
EJB 보안 정의
역할 정의
보안 식별자 정의
메소드 퍼미션 정의
principal을 역할에 매핑시키기
보안 식별로 역할 사용하기
프로그래밍 상의 EJB 보안
웹 애플리케이션과 컴포넌트에서의 보안
웹 인증
J2EE RI 기본 인증 설정하기
선언적 웹 권한 부여
J2EE RI 선언적 웹 보안 설정하기
프로그래밍 상의 웹 권한 부여
프로그래밍 상의 웹 보안 추가하기
안전한 웹 인증 스킴 사용하기
보안과 JNDI
간단한 LDAP 인증
SASL 인증
요약
Q&A
연습문제
16일째 J2EE에서 XML 사용하기
플랫폼 독립적인 데이터 교환
XML의 장점
XML의 기원
XML의 구조 및 문법
HTML과 XML
XML 문서의 구조
선언
요소
잘 구성된 XML 문서
속성
주석
유효한 XML 생성하기
DTD
네임스페이스
XML 스키마에 문서 구조 정의하기
XML은 J2EE에서 어떻게 사용되나?
XML 파싱
JAXP 패키지
SAX 방식의 XML 파싱
DOM 파서
DOM 트리 수정하기
XML 바인딩을 위한 자바 아키텍처
JAXP와 JAXB의 차이점
Agency 사례 연구 확장
1단계 - 세션 빈 변경하기
2단계 - MessageSender 헬퍼 클래스 수정하기
3단계 - ApplicantMatch 메시지 드리븐 빈 수정하기
요약
Q&A
연습문제
17일째 XML 문서 변환하기
클라이언트에게 XML 보여주기
XML을 브라우저에 출력하기
XSL(eXtensible Stylesheet Language)
XSL-FO(XSL Formatting Objects)
XSLT(eXtensible Stylesheet Transformations)
스타일시트 적용하기
변환된 문서를 서버에 저장하기
XML 문서와 스타일시트를 클라이언트에 출력하기
XML 문서를 서버에서 변환하기
J2EE에서 XALAN 사용하기
XALAN으로 XML 문서 변환하기
커맨드 라인에서 XALAN 사용하기
자바 애플리케이션에서 XSLT 사용하기
XSLT 스타일시트
템플릿 규칙
XML 요소의 텍스트 표현
XSLT에서 XPath 사용하기
디폴트 스타일시트 규칙
프로세싱 속성
스타일시트 요소 사용하기
프로세싱 공백 및 텍스트
주석 추가하기
속성값
요소 생성 및 복사하기
속성 및 속성 집합
부가적인 XSL 요소
XSLT 컴파일러
요약
Q&A
연습문제
18일째 패턴
J2EE 패턴
패턴이란?
왜 패턴을 사용하는가?
패턴의 유형
J2EE 패턴
패턴의 목록
J2EE 특유의 패턴을 적용하기
J2EE 환경에서 패턴 적용하기
일반적인 패턴
J2EE 프리젠테이션 계층 패턴
J2EE 비즈니스 계층 패턴
J2EE 통합(integration) 계층 패턴
J2EE 내부의 패턴
패턴의 실전
사례 연구 분석
Session Facade와 엔티티 EJB
데이터 교환과 Value Object
엔티티 EJB 없이 데이터에 액세스하기
메시지와 비동기 활성화
엔티티 작성하기
JSP 작성하기
JSP와 관계의 분리
클라이언트 측 프록시와 위임
위치 검색(Locating) 서비스
다른 비즈니스에서의 적용
사례 연구의 리팩토링
J2EE 패턴의 방향
요약
Q&A
연습문제
19일째 외부 자원과의 통합
외부 자원과 레거시 시스템에 대한 재고
Connector 아키텍처에 대한 소개
아키텍처의 개요
역할과 책임
CCI(Common Client Interface) 사용하기
EIS와의 상호 작용
리소스 어댑터의 설치
첫 번째 CCI 애플리케이션 만들기
트랜잭션을 관리하고 레코드를 자세히 살펴보기
다른 연결 기술(Connectivity Technologies)들의 소개
CORBA에 대한 소개
자바 IDL의 소개
IIOP로 RMI 사용하기
JRMP 상의 RMI에 대한 예제
IIOP 상의 RMI에 대한 예제
JNI에 대한 소개
통합 기술에 대한 평가
요약
Q&A
연습문제
20일째 J2EE로 RPC 스타일의 웹 서비스 사용하기
웹 서비스의 개략
웹 서비스는 무엇인가?
왜 웹 서비스를 사용하는가?
웹 서비스 기술과 프로토콜
웹 서비스 아키텍처
J2EE를 위한 웹 서비스
J2EE 웹 서비스 아키텍처
도구와 기술
웹 서비스와 기존 J2EE 컴포넌트의 통합
RPC 스타일의 SOAP 기반 웹 서비스 사용하기
RPC 지향의 웹 서비스들
Tomcat 4.0에서 Axis를 설치하기
서비스 디스크립션 정보
WSDL 문서의 분석
WSDL로부터 자바 프록시의 생성
SOAP를 통하여 웹 서비스를 호출하기
타협 방법(A Half-Way House)
SOAP 상호 작용의 디버깅
RPC 스타일의 SOAP 기반 웹 서비스 구현하기
자바 클래스를 웹 서비스로서 감싸기
웹 서비스를 위한 클라이언트
WSDL에서 시작하기
Axis JWS 파일 사용하기
세션 컨텍스트와 웹 서비스
기존 J2EE 기능을 웹 서비스로 감싸기
파라미터 형과 형 매핑
자바 형(Type)과 SOAP/WSDL형 사이의 매핑
시리얼라이저(Serializer)로 복잡한 형을 매핑하기
복잡한 형 매핑에 대해 좀 더 배우기
요약
Q&A
연습문제
21일째 웹 서비스 레지스트리와 메시지 스타일의 웹 서비스
웹 서비스들을 위한 레지스트리
웹 서비스 레지스트리란 무엇인가?
이것이 왜 필요한가?
그것들은 어떻게 작동하는가?
레지스트리의 유형
ebXML 레지스트리와 리파지토리
UDDI 개요
UDDI 레지스트리의 정보에 액세스하기
UDDI4J를 사용하여 서비스 정보 조작하기
IBM WSTK 클라이언트 API를 사용해서 서비스 정보 조작하기
서비스 정보를 검색하고 사용하기
레지스트리 액세스에 JAXR 사용하기
일반적인 액세스
서비스 정보를 저장하고 조회하기 위해 JAXR 사용하기
메시지 기반의 SOAP 인터페이스 사용하기
메시지 스타일과 RPC 스타일
클라이언트 만들기
서비스 만들기
JAXM으로 SOAP 메시지를 주고받기
JAXM과 J2EE
JAXM 설정하기
기본적인 SOAP 메시지 보내기
간단한 클라이언트 실행하기
메시지 구성하기
헤더와 첨부물
JAXM을 사용하여 SOAP 메시지 받기
JAXM 프로파일 사용하기
JAXM 프로파일을 사용하여 메시지 보내기
JAXM 프로파일을 사용해서 메시지 받기
요약
Q&A
연습문제
부록 A UML 소개
부록 B SQL 레퍼런스
부록 C XML 소개
부록 D 자바 커뮤니티 프로세스
찾아보기