목차
1부 관점지향 프로그래밍과 AspectJ의 이해
1장 관점지향 프로그래밍 소개(Aspect-oriented programming)
1.1 설계자의 진퇴양난 = 28
1.2 프로그래밍 방법론의 발전 = 30
1.3 시스템 관심사 관리 = 30
1.4 비모듈화 시스템에 횡단 관심사 구현하기 = 37
1.5 관점지향 프로그래밍 소개 = 43
1.6 관점지향 프로그래밍 언어의 해부 = 46
1.7 관점지향 프로그래밍의 혜택 = 52
1.8 관점지향 프로그래밍의 신화와 실상 = 53
1.9 요약 = 55
2장 AspectJ 소개
2.1 AspectJ 개요 = 58
2.2 AspectJ Hello World = 62
2.3 AspectJ: 숨겨진 부분 = 66
2.4 결합점(join point) 모델 = 69
2.5 애스펙트 = 85
2.6 AspectJ 도구 개요 = 89
2.7 요약 = 92
3장 AspectJ : 기본 문법
3.1 교차점(pointcut) = 95
3.2 충고(advice) = 113
3.3 정적 횡단 = 131
3.4 도움말과 기법 = 135
3.5 요약 = 136
4장 고급 AspectJ
4.1 반사(reflection) 기능으로 결합점 정보 참조하기 = 138
4.2 애스펙트 우선 순위 = 149
4.3 애스펙트 연관(association) = 163
4.4 예외 연화(softening) = 180
4.5 특권이 부여된 애스펙트 = 184
4.6 요약 = 187
2부 AspectJ의 기본 응용
5장 감시(monitoring) 기법 : 로깅, 추적(tracing), 프로파일링
5.1 로깅을 위해 AspectJ를 사용하는 이유 = 192
5.2 전통적인 로깅의 문제점 = 201
5.3 AspectJ에 근거한 로깅의 아름다움 = 203
5.4 로깅과 추적(tracing) 애스펙트 개발 = 204
5.5 로깅 이디엄(idiom) = 217
5.4 다른 용도를 위해 로깅을 확장하기 = 225
5.7 요약 = 227
6장 정책 적용, 시행, 준수: 시스템 전체 계약
6.1 AspectJ에 근거한 정책 시행 개요 = 231
6.2 현재의 해결책과 문제점 = 232
6.3 AspectJ를 사용한 정책 시행 = 234
6.4 정책 시행 패턴 = 237
6.5 예 : EJB 프로그래밍 제한 구현하기 = 244
6.6 예 : Swing 정책 구현하기 = 250
6.7 요약 = 255
7장 최적화 작업 : 풀링과 캐싱
7.1 대표적인 예 = 258
7.2 AspectJ를 사용한 자원 풀링 = 263
7.3 예 1 : 데이터베이스 연결 풀링 = 267
7.4 예 2 : 스레드 풀링 = 281
7.5 풀링의 개념을 캐싱에 확대하기 = 296
7.5 요약 = 303
3부 AspectJ의 고급 응용
8장 설계 패턴과 이디엄
8.1 워커(worker) 객체 생성 패턴 = 308
8.2 웜홀(wormhole) 패턴 = 319
8.3 예외 도입 패턴 = 324
8.4 참가자 패턴(The participant pattern) = 335
8.5 이디엄 = 344
8.5 요약 = 353
9장 스레드 안전 구현하기
9.1 스윙의 단일 스레드 규칙 (Swing's single-thread rule) = 356
9.2 테스트 문제 = 359
9.3 해결책 : 기존의 방법 = 362
9.4 해결책: AspectJ 방법 = 367
9.5 해결책을 향상시키기 = 383
9.6 UI 애플리케이션의 응답속도 향상시키기 = 386
9.7 읽기-쓰기 록(read-write lock) 패턴 모듈화하기 = 389
9.8 요약 = 395
10장 인증(authentication)과 권한부여(authorization)
10.1 문제의 개요 = 397
10.2 간단한 은행 예 = 398
10.3 인증 : 기존의 방법 = 403
10.4 인증 : AspectJ 방식 = 407
10.5 권한부여 : 기존의 방식 = 411
10.6 권한부여 : AspectJ 방식 = 422
10.7 해결책의 미세 조정 = 431
10.8 요약 = 433
11장 트랜잭션 관리
11.1 예 : 영속성을 가진 은행 시스템 = 436
11.2 기존 해결책 = 444
11.3 간단한 AspectJ 해결책 개발 = 448
11.4 해결책 개선 = 461
11.5 AspectJ를 고급 트랜잭션 관리 시스템에 사용하기 = 471
11.6 요약 = 474
12장 비즈니스 규칙 구현
12.1 엔터프라이즈 애플리케이션에 비즈니스 규칙 사용 = 476
12.2 비즈니스 규칙 구현 개요 = 476
12.3 현재의 방식 = 477
12.4 AspectJ를 사용한 해결책 도입 = 478
12.5 예 : 은행 시스템 = 480
12.6 비즈니스 규칙을 규칙 엔진으로 구현하기 = 498
12.7 예 : 규칙 엔진을 사용한 은행 시스템 = 505
12.8 요약 = 512
13장 다음 단계
13.1 AspectJ를 새로운 문제에 적용 = 514
13.2 AspectJ를 개발 과정에서 사용 = 516
13.3 주의 사항 = 522
13.4 AspectJ의 보급(evangelizing) = 522
13.5 마지막 생각들 = 525
부록
부록 A AspectJ 컴파일러 = 528
부록 B Ant와 통합 = 539
참고자료 = 549
찾아보기 = 555