책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > 자바
· ISBN : 9788976278494
· 쪽수 : 576쪽
· 출판일 : 2001-07-02
책 소개
목차
제1부 배경지식
Chapter 1 EJB(Enterprise JavaBeans)란?
1.1 EJB의 정의
1.2 이 책의 구성과 범위
Chapter 2 개발 방법론과 개발 환경의 진화
2.1 개발 방법론의 발달
2.1.1 객체지향 개발
객체의 의미
데이터 추상화(Abstraction)
객체 간 상속(Inheritance)
다형성(Polymorphism)
캡슐화(Encapsulation)
2.1.2 분산환경과 분산객체
2-tier vs. 3-tier
분산환경과 분산객체
분산객체의 개념
2.1.3 컴포넌트 기반 개발
컴포넌트(Component)의 의미
컨테이너(Container)
2.1.4 웹 개발 방법론의 발달
동적인 웹 문서 - CGI
웹 개발 스크립트 언어
서블릿(Servlet)과 JSP(JavaServer Pages)
J2EE와 웹 개발
2.2 엔터프라이즈 급 개발
2.2.1 엔터프라이즈 급의 개발이란?
2.2.2 엔터프라이즈 환경의 요구 조건
클라이언트-서버 개발
분산객체의 지원
자원 관리
트랜잭션(Transactions)의 무결성
보안(Security)
개발과 배치(Deployment)의 편리성
기존 시스템과의 유연한 통합
2.3 장을 마치며
Chapter 3 J2EE 개요
3.1 J2EE의 등장 배경
3.2 J2EE의 구성 요소
3.2.1 컴포넌트(Components) 기술
서블릿(Servlet)과 JSP(JavaServer Pages)
EJB(Enterprise JavaBeans)
3.2.2 서비스(Services) 기술
JDBC(Java Database Connectivity)
JNDI(Java Naming and Directory Interface)
JTA(Java Transaction API)
3.2.3 통신(Communication) 기술
JMS(Java Message Service)
JavaMail과 JAF(JavaBeans Activation Framework)
Java IDL과 RMI-IIOP
3.3 J2EE 애플리케이션 아키텍처
3.3.1 J2EE 애플리케이션 아키텍처의 개요
클라이언트 층
웹 층
EJB 층
EIS 층
3.3.2 J2EE 기반 2-tier, 3-tier, n-tier 애플리케이션
2-tier 아키텍처
3-tier 아키텍처
n-tier(멀티티어) 아키텍처
3.4 J2EE 애플리케이션의 구성과 J2EE 애플리케이션 서버
3.4.1 J2EE 애플리케이션의 구성
웹 모듈
EJB 모듈
애플리케이션 클라이언트 모듈
J2EE 애플리케이션 ear 파일과 배치(Deployment)
3.4.2 J2EE 애플리케이션 서버
J2EE SDK
3.4.3 이 책을 공부하기 위한 환경 구축
3.5 장을 마치며
제2부 EJB 맛보기
Chapter 4 EJB의 구성
4.1 엔티티 빈과 세션 빈
4.1.1 비즈니스 엔티티(Business Entity)
4.1.2 비즈니스 프로세스(Business Process)
4.1.3 엔티티 빈과 세션 빈
4.2 EJB의 구성 요소
4.2.1 사용자 인터페이스(Client Interfaces)
4.2.2 엔터프라이즈 빈 클래스(Enterprise Bean Class)
4.2.3 배치 설명 파일(Deployment Descriptor File)
4.2.4 기본키 클래스(Primary Key Class)
4.3 EJB 구성 요소와 EJB 컨테이너의 가공 객체
4.3.1 EJB 컨테이너의 가공 객체(Artifacts)
EJB 객체(EJB Objects)
EJB 홈 객체(EJB Home Objects)
4.3.2 EJB 구성 요소와 가공 객체의 관계
4.4 장을 마치며
Chapter 5 EJB 튜토리얼
5.1 엔티티 빈
5.1.1 엔티티 빈의 개발
설계
사용자 인터페이스
홈 인터페이스
원격 인터페이스
기본키 클래스
엔터프라이즈 빈 클래스
배치 설명 파일
EJB 모듈의 패키징(Packaging)
5.1.2 엔티티 빈의 배치
배치의 개념
배치 시에 벌어지는 일
배치자(Deployer)
엔티티 빈과 지속성(Persistence)
5.1.3 엔티티 빈의 사용
5.1.3.1 엔티티 빈을 사용하는 스탠드얼론 자바 프로그램
클라이언트 모듈
클라이언트 프로그램
JNDI를 통한 EJB 홈 객체 스텁 얻기
홈 객체 스텁으로 엔티티 생성 후 EJB 객체 스텁 얻기(홈 인터페이스)
EJB 객체 스텁으로 비즈니스 메소드 호출(원격 인터페이스)
엔티티 찾기
JNDI 설정 - 클라이언트 모듈 배치 설명 파일(application-client.xml)
클라이언트 모듈 패키징
실행 예
5.1.3.2 엔티티 빈을 사용하는 JSP 문서
JSP 문서
JNDI 설정 - 웹 모듈 배치 설명 파일(web.xml)
웹 모듈의 패키징
실행 예
5.2 세션 빈
5.2.1 세션 빈의 개발
설계
홈 인터페이스
원격 인터페이스
엔터프라이즈 빈 클래스
배치 설명 파일
EJB 모듈의 패키징
5.2.2 세션 빈의 배치
5.2.3 세션 빈의 사용
5.2.3.1 세션 빈을 사용하는 스탠드얼론 자바 프로그램
클라이언트 프로그램
JNDI 설정 - 클라이언트 모듈 배치 설명 파일(application-client.xml)
클라이언트 모듈 패키징
실행 예
5.2.3.2 세션 빈을 사용하는 JSP 문서
회원 정보 입력 문서
회원 등록 처리 문서
JNDI 설정 - 웹 모듈 배치 설명 파일(web.xml)
웹 모듈의 패키징
실행 예
5.3 J2EE 애플리케이션의 패키징
5.4 장을 마치며
제3부 EJB 집중탐구
Chapter 6 EJB 탐구를 위한 사전 지식
6.1 EJB 기반의 J2EE 애플리케이션 개발 및 활용 과정
6.2 구성원(EJB Roles)
6.2.1 빈 개발자(EJB developer)
6.2.2 애플리케이션 구성자(Application Assembler)
6.2.3 배치자(Deployer)
6.2.4 시스템 관리자(System Administrator)
6.2.5 EJB 컨테이너 및 EJB 서버 제공자
6.3 EJB 컨테이너가 제공하는 서비스
자원 관리
분산객체 프로토콜
스레드 관리 및 동기화
트랜잭션
지속성 관리
보안 서비스
JNDI 서비스
6.4 EJB 컨테이너가 제공하는 툴
6.5 EJB의 인자 및 리턴값에 대한 규약
값과 참조자
클래스 타입의 인자와 리턴값
EJB의 인자와 리턴값의 규약
6.6 장을 마치며
Chapter 7 엔티티 빈즈(Entity Beans)
7.1 엔티티 빈즈의 구성 요소 및 지속성
7.1.1 엔티티 빈즈의 구성 요소
개발자 관점
사용자 관점
7.1.2 컨테이너 관리 지속성 vs. 빈 관리 지속성
7.2 사용자 관점의 구성 요소
7.2.1 홈 인터페이스
엔티티 생성 - create() 메소드
엔티티 찾기 - 찾기 메소드
엔티티 제거 - remove() 메소드
7.2.2 원격 인터페이스
7.2.3 기본키 클래스
7.2.4 엔티티 빈의 사용
JNDI를 통한 EJB 홈 객체 찾기
홈 인터페이스를 통한 엔티티의 생성 및 찾기
원격 인터페이스를 통한 비즈니스 메소드 호출
엔티티 제거
핸들(Handle)
메타데이터(Metadata)
두 엔티티의 동일 비교
getEJBHome()과 getPrimaryKey() 메소드
7.2.5 사용자 관점의 엔티티 빈의 라이프 사이클
7.3 엔터프라이즈 빈 클래스
7.3.1 엔터프라이즈 빈 클래스의 개념과 역할
비즈니스 메소드 구현
지속성과 라이프 사이클 관련 메소드 그리고 빈 인스턴스
생성, 찾기, 제거 메소드
7.3.2 필드
지속성 필드
내부 필드
7.3.3 비즈니스 메소드
공개 메소드
내부 메소드
7.3.4 비즈니스 메소드가 아닌 메소드
ejbCreate(), ejbPostCreate() 메소드
ejbFindXXX() 메소드
ejbLoad(), ejbStore() 메소드
ejbRemove() 메소드
예외 처리
컨테이너 관리 지속성 vs. 빈 관리 지속성
7.4 라이프 사이클
7.4.1 엔티티 빈 인스턴스의 라이프 사이클
엔티티 빈 인스턴스의 개념
엔티티 빈 인스턴스의 라이프 사이클
7.4.2 재진입(Reentrance)
7.4.3 EntityContext
EntityContext란?
setEntityContext(), unsetEntityContext() 메소드
7.4.3 상황별 상세 과정
엔티티 생성의 과정
엔티티 찾기의 과정
엔티티 제거의 과정
엔티티 비활성화와 활성화의 과정
7.5 장을 마치며
Chapter 8 세션 빈즈(Session Beans)
8.1 세션 빈의 개념과 종류
8.1.1 세션 빈의 개념
8.1.2 세션 빈의 종류
8.1.3 세션 빈의 구성
8.2 상태유지 세션 빈즈(Stateful Session Beans)
8.2.1 사용자 인터페이스
홈 인터페이스
원격 인터페이스
8.2.2 엔터프라이즈 빈 클래스
필드
비즈니스 메소드
라이프 사이클 관련 메소드
8.2.3 상태유지 세션 빈의 사용자 관점
상태유지 세션 빈의 사용
사용자 관점의 세션 빈의 라이프 사이클
8.2.4 상태유지 세션 빈의 라이프 사이클
빈 인스턴스의 라이프 사이클
ejbCreate()와 ejbRemove() 메소드
ejbActivate()와 ejbPassivate() 메소드
SessionContext와 setSessionContext() 메소드
8.2.5 상황별 상세 과정
상태유지 세션 빈 생성 과정
상태유지 세션 빈 제거 과정
상태유지 세션 빈 비활성화와 활성화 과정
8.3 비상태유지 세션 빈즈(Stateless Session Beans)
8.3.1 사용자 인터페이스
홈 인터페이스
원격 인터페이스
비상태유지 세션 빈의 사용
8.3.2 엔터프라이즈 빈 클래스
필드
비즈니스 메소드
8.3.3 비상태유지 세션 빈 인스턴스의 라이프 사이클
라이프 사이클
라이프 사이클 관련 메소드
8.3.4 상황별 상세 과정
사용자가 create() 메소드를 호출하는 경우의 과정
컨테이너가 빈 인스턴스를 풀내메소드준비 상태로 만드는 과정
사용자가 remove() 메소드를 호출하는 경우의 과정
컨테이너가 빈 인스턴스를 제거하는 과정
8.4 장을 마치며
Chapter 9 배치 설명 파일(Deployment Descriptor File)
9.1 J2EE 애플리케이션 배치 설명 파일(application.xml)
9.1.1 application.xml 파일의 골격
9.1.2 GUI 툴을 위한 태그
9.1.3 모듈을 위한 태그
9.1.4 보안 역할을 위한 태그
9.2 EJB 배치 설명 파일(ejb-jar.xml)
9.2.1 EJB 배치 설명 파일의 골격
9.2.2 빈즈에 대한 태그
9.2.2.1 엔티티 빈을 위한 태그
entity 태그의 골격
기본키에 대한 태그
컨테이너 관리 지속성 필드에 대한 태그
환경 변수에 대한 태그
다른 EJB 사용을 위한 태그
외부 자원 사용을 위한 태그
9.2.2.2 세션 빈을 위한 태그
session 태그의 골격
9.2.3 트랜잭션에 대한 태그
9.2.4 보안에 관련된 태그
9.3 웹 배치 설명 파일(web.xml)
9.4 애플리케이션 클라이언트 배치 설명 파일(application-client.xml)
9.5 장을 마치며
Chapter 10 트랜잭션(Transactions)
10.1 트랜잭션의 개념
10.1.1 트랜잭션의 정의
10.1.2 트랜잭션의 필요성
10.1.3 트랜잭션의 조건
단일성(Atomicity)
일관성(Consistency)
고립성(Isolation)
보존성(Durability)
10.1.4 2-PC(2-Phase Commit)
10.2 EJB 컨테이너를 사용한 트랜잭션
10.2.1 다양한 트랜잭션 기능
10.2.2 트랜잭션 범위(Scope)
10.2.3 트랜잭션 속성(Attribute)
Not Supported
Supports
Required
RequiresNew
Mandatory
Never
10.2.4 트랜잭션 속성 정의 방법
10.2.5 트랜잭션 속성과 범위의 관계
10.3 JTA 사용하기
10.3.1 JTA란?
10.3.2 UserTransaction을 사용한 트랜잭션 구현
10.3.3 UserTransction 인터페이스
begin()
commit()
rollback()
setRollbackOnly()
setTransactionTimeout(int seconds)
getStatus()
10.3.4 트랜잭션 상태
STATUS_ACTIVE
STATUS_COMMITTED
STATUS_COMMITTING
STATUS_MARKED_ROLLBACK
STATUS_NO_TRANSACTION
STATUS_PREPARED
STATUS_PREPARING
STATUS_ROLLEDBACK
STATUS_ROLLING_BACK
getStatus() 메소드 사용법
10.3.5 UserTransaction 객체 구하기
클라이언트에서 UserTransaction 객체 구하기
세션 빈에서 UserTransction 객체 구하기
10.3.6 EJBContext 롤백 메소드
10.3.7 JTA 사용상 주의할 점
10.4 예외 처리
10.4.1 시스템 예외
10.4.2 애플리케이션 예외
10.4.3 EJB와 트랜잭션 예외
CreateException
DuplicateKeyException
FinderException
ObjectNotFoundException
RemoveException
경험적 결정(Heuristic Descision)이란?
IllegalStateException
SystemException
TransactionRolledbackException
HeuristicRollbackException
HeuristicMixedException
SecurityException
10.5 트랜잭션 고립성 단계(Transaction Isolation Level)
10.5.1 트랜잭션과 시스템 성능의 관계
10.5.2 데이터의 일관성
미완성 읽기(Dirty Reads)
반복 읽기(Repeatable Reads)
가상 읽기(Phantom Reads)
10.5.3 데이터베이스 잠금 장치(Locking Mechanism)
읽기 잠금(Read Locks)
쓰기 잠금(Write Locks)
쓰기 전용 잠금(Exclusive Write Locks)
10.5.4 트랜잭션 고립성 단계
Read Uncommitted
Read Committed
Repeatable Read
Serializable
10.5.5 고립성 단계의 설정 방법
10.5.6 고립성 단계 사용의 주의점
10.6 장을 마치며
Chapter 11 보안(Security)
11.1 보안의 개념
11.1.1 보안에 필요한 기능
11.1.2 다수의 실행 경로
11.1.3 권한 부여의 캡슐화(Encapsulation)
11.2 인증 기능(Authentication)
11.2.1 인증 경계선(Authentication Boundary)
11.2.2 보호 영역(Protection Domain)
11.2.3 보안의 주체(Security Principal)와 역할(Security Role)
11.2.4 시스템 관리자의 역할
11.2.5 신원 전달(Identity Propagation)과 신원 대리(Identity Impersonation)
신원 전달
신원 대리
11.2.6 웹 층에서의 인증 기능
HTTP 기본 인증(HTTP Basic Authentication)
HTTP 요약 인증(HTTP Digest Authentication)
폼을 사용한 인증(Form-based Authentication)
HTTPS 상호 인증(HTTPS Mutual Authentication)
복합 형식의 인증
11.2.7 EJB 층에서의 인증 기능
11.2.8 EIS 층에서의 인증 기능
11.3 권한 부여 기능(Authorization)
11.3.1 권한 경계선(Authorization Boundary)
11.3.2 두 가지의 권한 부여 기능
선언 방식 권한 부여(Declarative Authorization)
프로그램 방식의 권한 부여(Programmatic Authorization)
두 가지 권한 부여 방법의 적절한 혼합
11.3.3 웹 층의 권한 부여 기능
11.3.4 EJB 층에서의 권한 부여 기능
선언 방식
프로그램 방식
11.4 안전한 통신
11.4.1 보존적 방법(Integrity Mechanism)
11.4.2 기밀 유지 방법(Confidentiality Mechanism)
11.5 장을 마치며
Chapter 12 EJB 2.0
12.1 JMS와의 밀접한 연동
풀링 사용
메시지 송수신의 비동기성(Asynchronous)
스레드 세이프(Thread Safe)와 동시성(Concurrency)
트랜잭션
메시지 빈 사용법
요약
12.2 엔티티 빈의 지속성 관리
종속적 빈(Dependent Bean)
EJB : QL(Query Language)
리스트 메소드
12.3 보안 기능의 강화
12.4 RMI-IIOP 사용의 의무화
12.5 장을 마치며
제4부 추가 주제
Chapter 13 RMI
13.1 RMI의 발전
13.1.1 객체지향 소프트웨어 개발
13.1.2 분산환경
13.1.3 RMI(Remote Method Invocation)란?
13.2 RMI에 관해서
13.2.2 RMI의 기본 개념
13.2.3 스텁(Stub)과 인자 조율(Parameter Mashalling)
13.3 EJB에서의 RMI
13.3.1 RMI의 역할
13.3.2 RMI가 EJB 개발에 미치는 영향
13.3.3 데이터의 전달
실제값 전달 방법
참조자 전달 방법
EJB에서의 데이터 전달 방법
13.3.4 RMI 사용의 문제점
13.4 RMI-IIOP / CORBA
13.4.1 IIOP 사용의 장점
13.4.2 IIOP 사용 시 주의할 점
IIOP의 데이터 타입 규정
PortableRemoteObject
IIOP 사용의 문제점
13.5 장을 마치며
Chapter 14 JNDI
14.1 네이밍(Naming)
14.1.1 네이밍의 개념
14.1.2 네이밍의 방식
이름의 형태
연결(Binding)
문맥(Context)
네임스페이스(Namespace)
14.2 디렉토리(Directory)
14.2.1 디렉토리 서비스의 개념
14.2.2 속성(Attribute)의 개념
14.2.3 속성을 이용한 검색
14.2.4 디렉토리의 사용 방법
14.3 JNDI
14.3.1 JNDI의 개념
14.3.2 javax.naming 패키지
Context 인터페이스
lookup() 메소드
목록의 생성, 수정, 그리고 삭제
listBindings()와 list() 메소드
Reference 클래스
Name 인터페이스와 CompositeName 클래스
초기 문맥(Initial Context)
14.3.3 javax.naming.directory 패키지
DirContext 인터페이스
질의
네이밍과의 연동
14.3.4 javax.naming.event 패키지
NamingEvent 클래스
NamingListener 인터페이스
14.3.5 javax.naming.spi 패키지
14.3.6 javax.naming.ldap 패키지
14.4 환경 특성(Environment Properties)
14.4.1 환경 특성의 개념
14.4.2 환경 특성의 설정 방법
자원 파일(Resource File)
프로그램에서의 설정 방법
14.5 EJB에서의 JNDI
14.5.1 ENC(Enterprise Naming Context)
14.5.2 EJB 찾기
14.5.3 외부 자원 찾기
14.6 장을 마치며
Chapter 15 JMS
15.1 JMS란 무엇인가?
15.2 기본 개념
15.2.1 구조
15.2.2 관리자가 해 주어야 할 일
15.2.3 메시지
15.3 JMS에서 지원하는 메시지 교환 형태
15.3.1 일대일(point-to-point) 방식
15.3.2 출판/구독(Publish/Subscribe) 방식
15.3.3 메시지 수신 방법
15.4 간단한 JMS 애플리케이션 제작
15.4.1 일대일 방식
ConnectionFactory 생성
Destination 생성
ConnectionFactory 찾기
메시지 큐 찾기
연결하기
세션 만들기
메시지 발송 클래스
메시지 수신 클래스
메시지 교환 시작
메시지 보내기
메시지 받기
15.4.2 출판/구독 방식
ConnectionFactory 생성
Destination 생성
ConnectionFactory 찾기
메시지 주제 찾기
연결하기
세션 만들기
메시지 발송 클래스
메시지 수신 클래스
메시지 교환 시작
메시지 보내기
메시지 받기
15.5 메시지 생성
15.5.1 StreamMessage
15.5.2 MapMessage
15.5.3 TextMessage
15.5.4 ObjectMessage
15.5.5 BytesMessage
15.6 장을 마치며
부록
A 자바 프로그램의 컴파일과 실행 - 클래스패스와 환경 변수
B 자바 언어의 상속(Inheritance)
C J2EE 애플리케이션 서버 사용의 예 - 오라이온 서버
D EJB API 요약
E 예제 소스
찾아보기