PoEAA 읽기 가이드 — Larman 이후의 다음 단계
이 책은 왜 읽는가
Craig Larman의 Applying UML and Patterns는 요구사항에서 설계 클래스 다이어그램(DCD)까지의 여정을 안내한다. Use Case → SSD → Domain Model → Interaction Diagram → DCD. 하지만 DCD가 완성되어도 여전히 남는 질문이 있다:
- "이 도메인 객체를 DB에 어떻게 저장하지?"
- "웹 요청은 어떻게 도메인 로직으로 연결되지?"
- "여러 객체를 한 트랜잭션으로 어떻게 묶지?"
Martin Fowler의 Patterns of Enterprise Application Architecture (PoEAA)는 정확히 이 gap을 채운다. Larman이 **"이 클래스에 이 메서드가 있어야 한다"**까지 알려줬다면, Fowler는 **"그 클래스를 DB에 어떻게 저장하고, 웹에서 어떻게 서빙하는지"**를 알려준다.
책의 구조
PoEAA는 두 파트로 나뉜다:
Part 1 — Narratives (Ch.1~8): 서사형 설명. 왜 이런 패턴이 필요한지, 어떤 상황에서 무엇을 선택해야 하는지를 이야기한다. 처음부터 끝까지 순서대로 읽어야 한다.
Part 2 — Patterns (Ch.9~18): 레퍼런스. 각 패턴의 의도, 동작 방식, 언제 쓸지, 코드 예제를 담고 있다. 필요할 때 찾아 읽는다.
핵심 읽기 순서
1단계: 아키텍처 큰 그림 (필수)
- 01-three-principal-layers|Ch.1 Layering — 3계층 아키텍처의 근거
- 02-organizing-domain-logic|Ch.2 Organizing Domain Logic — Transaction Script vs Domain Model vs Table Module
- 03-mapping-to-relational-databases|Ch.3 Mapping to Relational Databases — 데이터 소스 패턴 전체 조감도
2단계: 핵심 패턴 선택 (프로젝트 맞춤)
- 04-domain-logic-patterns|Domain Logic Patterns — 도메인 로직을 어떻게 구조화할 것인가
- 05-data-source-patterns|Data Source Patterns — DB와 객체 사이의 아키텍처 결정
- 06-or-behavioral-patterns|O-R Behavioral Patterns — Unit of Work, Identity Map, Lazy Load
3단계: 통합과 선택 (실전 적용)
- 07-putting-it-all-together|Ch.8 Putting It All Together — 패턴 조합 의사결정 트리
- 08-web-presentation-patterns|Web Presentation Patterns — MVC와 그 변형들
4단계: 필요시 참조
- O-R Structural Patterns (Identity Field, Foreign Key Mapping 등)
- Distribution Patterns (Remote Facade, DTO)
- Base Patterns (Gateway, Mapper, Registry, Plugin 등)
Larman 프로젝트에 즉시 적용하기
Academic Life Management System의 DCD가 이미 있다면, Fowler를 적용하는 순서는:
- Domain Logic 패턴 선택: 도메인 복잡도에 따라 Domain Model vs Active Record 결정
- Data Source 패턴 선택: Domain Model의 복잡도에 따라 Active Record vs Data Mapper 결정
- O-R Behavioral 패턴 적용: Unit of Work로 트랜잭션 관리, Identity Map으로 중복 방지
- Web Presentation 패턴 선택: MVC 변형 중 프레임워크에 맞는 것 선택
이 과정이 바로 iteration0-guide|Iteration 0에서 탐색해야 할 기술 스파이크의 본질이다.