목차
서문 = xix
역자 서문 = xxvii
들어가는 말 = 1
제1부 전체 설명
제1장 레이어 구성 = 19
기업 애플리케이션의 레이어 진화 = 20
세 가지 주요 레이어 = 22
레이어 실행 지점 선택 = 25
제2장 도메인 로직 구성 = 29
선택 = 33
서비스 레이어 = 34
제3장 관계형 데이터베이스 매핑 = 37
아키텍처 패턴 = 37
행위 문제 = 42
데이터 읽기 = 44
구조 매핑 패턴 = 45
매핑 관계 = 46
상속 = 49
매핑 설계 = 52
더블 매핑 = 53
메타데이터 사용 = 53
데이터베이스 연결 = 54
기타 주의사항 = 57
참고 자료 = 58
제4장 웹 프리젠테이션 = 59
뷰 패턴 = 62
입력 컨트롤러 패턴 = 65
참고 자료 = 65
제5장 동시성 = 67
동시성 문제 = 68
실행 컨텍스트 = 69
격리와 불변성 = 71
낙관적/비관적 동시성 제어 = 71
불일치 읽기 예방 = 73
교착 상태 = 74
트랜잭션 = 75
ACID = 76
트랜잭션 자원 = 76
활동성을 위한 트랜잭션 격리 감소 = 77
비즈니스 및 시스템 트랜잭션 = 79
오프라인 동시성 제어를 위한 패턴 = 81
애플리케이션 서버 동시성 = 82
참고 자료 = 84
제6장 세션 상태 = 85
상태없음(Statelessness)의 가치 = 85
세션 상태 = 87
세션 상태 저장방법 = 88
제7장 분산 전략 = 91
분산 객체의 유혹 = 91
원격 및 지역 인터페이스 = 92
분산이 필요한 곳 = 94
분산 경계선에 대한 작업 = 95
분산용 인터페이스 = 96
제8장 모두 모으기 = 99
도메인 레이어에서 시작 = 100
데이터 소스 레이어로 내려가기 = 101
트랜잭션 스크립트(116)를 위한 데이터 소스 = 101
데이터 소스 테이블 모듈(132) = 102
도메인 모델(123)용 데이터 소스 = 103
프리젠테이션 레이어 = 103
기타 기술 관련 조언 = 104
자바와 J2EE = 104
닷넷 = 106
스토어드 프로시저 = 106
웹 서비스 = 107
기타 레이어 구조 = 107
제2부 패 턴
제9장 도메인 로직 패턴 = 115
트랜잭션 스크립트 = 116
작동 원리 = 116
사용 시점 = 117
수익 인식 문제 = 118
예제 : 수익 인식(자바) = 119
도메인 모델 = 123
작동 원리 = 123
사용 시점 = 126
참고 자료 = 126
예제 : 수익 인식(자바) = 127
테이블 모듈 = 132
작동 원리 = 133
사용 시점 = 134
예제 : 테이블 모듈을 갖춘 수익 인식(C#) = 136
서비스 레이어 = 141
작동 원리 = 142
사용 시점 = 145
참고 자료 = 145
예제 : 수익 인식(자바) = 146
제10장 데이터 소스 아키텍처 패턴 = 151
테이블 데이터 게이트웨이 = 152
작동 원리 = 152
사용 시점 = 153
참고 자료 = 154
예제 : Person 게이트웨이(C#) = 155
예제 : ADO.NET데이터 세트 사용(C#) = 157
로우 데이터 게이트웨이 = 161
작동 원리 = 161
사용 시점 = 162
예제 : Person 레코드(자바) = 164
예제 : 도메인 객체를 위한 데이터 보유자(자바) = 168
액티브 레코드 = 170
작동 원리 = 170
사용 시점 = 171
예제 : 간단한 Person(자바) = 172
데이터 매퍼 = 176
작동 원리 = 176
사용 시점 = 181
예제 : 간단한 데이터베이스 매퍼(자바) = 182
예제 : 찾기 메쏘드(Finder) 분리(자바) = 188
예제 : 빈(Empty) 객체 생성(자바) = 192
제11장 객체-관계 행위 패턴 = 195
작업의 단위 = 196
작동 원리 = 196
사용 시점 = 201
예제 : 객체 등록을 갖춘 작업의 단위(자바) = 202
식별자 맵 = 207
작동 원리 = 207
사용 시점 = 210
예제 : 식별자 맵을 위한 메쏘드(자바) = 210
지연 로드 = 212
작동 원리 = 212
사용 시점 = 215
예제 : 지연 초기화(자바) = 215
예제 : 가상 프락시(자바) = 216
예제 : 값 보유자(Value Holder) 사용(자바) = 218
예제 : 유령(Ghost) 사용(C#) = 219
제12장 객체-관계 구조 패턴 = 229
식별자 필드 = 230
작동 원리 = 230
사용 시점 = 234
참고 자료 = 235
예제 : 정수 키(C#) = 235
예제 : 키 테이블 사용(자바) = 236
예제 : 복합 키(자바) = 239
이차 키 매핑 = 253
작동 원리 = 253
사용 시점 = 256
예제 : 단일 값 참조(자바) = 257
예제 : 다중 테이블 검색(자바) = 260
예제 : 참조의 컬렉션(C#) = 262
연관관계 테이블 매핑 = 266
작동 원리 = 266
사용 시점 = 267
예제 : 사원과 기술(C#) = 268
예제 : 직접SQL사용(자바) = 271
예제 : 여러 사원을 위한 단일 질의 사용(자바) = 275
의존 매핑 = 282
작동 원리 = 282
사용 시점 = 284
예제 : 앨범과 트랙(자바) = 284
임베디드 밸류 = 288
작동 원리 = 288
사용 시점 = 288
참고 자료 = 290
예제 : 간단한 밸류 오브젝트(자바) = 290
직렬화된 LOB = 292
작동 원리 = 292
사용 시점 = 294
예제 : XML로 부서 계층 직렬화(자바) = 294
단일 테이블 상속 = 298
작동 원리 = 298
사용 시점 = 299
예제 : 선수를 위한 단일 테이블(C#) = 300
데이터베이스로부터 객체 로드 = 302
클래스 테이블 상속 = 306
작동 원리 = 306
사용 시점 = 307
참고 자료 = 308
예제 : 선수들과 그들의 혈연관계(C#) = 308
실재 테이블 상속 = 315
작동 원리 = 315
사용 시점 = 317
예제 : 실재 선수들(C#) = 318
상속 매퍼 = 325
작동 원리 = 326
사용 시점 = 327
제13장 객체 - 관계 메타데이터 매핑 패턴 = 329
메타데이터 매핑 = 330
작동 원리 = 330
사용 시점 = 332
예제 : 메타데이터 및 리플렉션 사용(자바) = 333
질의 객체 = 341
작동 원리 = 341
사용 시점 = 342
참고 자료 = 343
예제 : 간단한 질의 객체(자바) = 343
저장소 = 347
작동 원리 = 348
사용 시점 = 349
참고 자료 = 350
예제 : Person의 의존 객체 찾기(자바) = 350
예제 : 저장소 전략 교체(자바) = 351
제14장 웹 프리젠테이션 패턴 = 353
모델 뷰 컨트롤러 = 354
작동 원리 = 354
사용 시점 = 356
페이지 컨트롤러 = 357
작동 원리 = 357
사용 시점 = 358
예제 : 서블릿 컨트롤러와 JSP 뷰가 있는 간단한 표현 = 359
예제 : JSP를 핸들러로 사용하기(자바) = 361
예제 : 이면에 코드를 가진 페이지 핸들러(C#) = 365
프론트 컨트롤러 = 369
작동 원리 = 369
사용 시점 = 371
참고 자료 = 371
예제 : 단순 표시(자바) = 372
템플릿 뷰 = 375
작동 원리 = 376
사용 시점 = 379
예제 : 개별 컨트롤러와 함께 JSP를 뷰로 사용하기(자바) = 380
예제 : ASP.NET 서버 페이지(C#) = 382
변형 뷰 = 387
작동 원리 = 387
사용 시점 = 388
예제 : 간단한 변형(자바) = 389
두 단계 뷰 = 392
작동 원리 = 392
사용 시점 = 394
예제 : 두 단계 XSLT(XSLT) = 398
예제 : JSP 및 커스텀 태그(자바) = 402
애플리케이션 컨트롤러 = 407
작동 원리 = 407
사용 시점 = 409
참고 자료 = 410
예제 : 상태 모델 애플리케이션 컨트롤러(자바) = 410
제15장 분산 패턴 = 415
원격 퍼사드 = 416
작동 원리 = 417
사용 시점 = 420
예제 : 자바 세션 빈을 원격 퍼사드로 이용하기(자바) = 420
예제 : 웹 서비스(C#) = 424
데이터 전송 객체 = 430
작동 원리 = 430
사용 시점 = 434
참고 자료 = 435
예제 : 음반에 대한 정보 전송(자바) = 436
예제 : XML을 이용한 직렬화(자바) = 440
제16장 오프라인 동시성 패턴 = 443
낙관적인 오프라인 잠금 = 444
작동 원리 = 445
사용 시점 = 448
예제 : 데이터 매퍼(176)가 있는 도메인 레이어(자바) = 449
비관적인 오프라인 잠금 = 455
작동 원리 = 456
사용 시점 = 460
예제 : 간단한 잠금 관리자(자바) = 460
거친-입자 잠금 = 468
작동 원리 = 468
사용 시점 = 471
예제 : 공유 낙관적인 오프라인 잠금(444)(자바) = 472
예제 : 공유 비관적인 오프라인 잠금(455)(자바) = 478
예제 : 루트 낙관적인 오프라인 잠금(444)(자바) = 479
암시적 잠금 = 480
작동 원리 = 481
사용 시점 = 482
예제 : 공유 비관적인 오프라인 잠금(455)(자바) = 482
제17장 세션 상태 패턴 = 485
클라이언트 세션 상태 = 486
작동 원리 = 486
사용 시점 = 487
서버 세션 상태 = 489
작동 원리 = 489
사용 시점 = 491
데이터베이스 세션 상태 = 493
작동 원리 = 493
사용 시점 = 495
제18장 기본 패턴 = 497
게이트웨이 = 498
작동 원리 = 498
사용 시점 = 499
예제 : 독점 메시징 서비스를 위한 게이트웨이(자바) = 500
매퍼 = 505
작동 원리 = 505
사용 시점 = 506
레이어 수퍼타입 = 507
작동 원리 = 507
사용 시점 = 507
예제 : 도메인 객체(자바) = 507
별도의 인터페이스 = 509
작동 원리 = 510
사용 시점 = 511
레지스트리 = 513
작동 원리 = 513
사용 시점 = 515
예제 : 싱글톤 레지스트리(자바) = 516
예제 : 쓰레드로부터 안전한 레지스트리(자바) = 518
밸류 오브젝트 = 520
작동 원리 = 520
사용 시점 = 521
머니 = 522
작동 원리 = 522
사용 시점 = 525
예제 : Money클래스(자바) = 525
특별한 사례 = 531
작동 원리 = 532
사용 시점 = 532
참고 자료 = 532
예제 : 간단한 널 객체(C#) = 533
플러그인 = 534
작동 원리 = 534
사용 시점 = 535
예제 : ID생성기(자바) = 536
서비스 스텁 = 539
작동 원리 = 539
사용 시점 = 540
예제 : 판매세 서비스(자바) = 541
레코드 세트 = 544
작동 원리 = 544
사용 시점 = 546
참고 자료 = 549
찾아보기 = 555