도메인 주도 개발 시작하기 1장을 정리하며, 도메인 전문가와의 소통이 중요한 이유와 도메인 모델·밸류 타입을 도출하는 과정을 다룹니다.
DIP로 의존 방향을 뒤집는 원리를 코드와 그림으로 살펴보고, 도메인 영역의 구성요소·애그리거트·모듈 구성까지 아키텍처 관점에서 정리합니다.
애그리거트의 개념과 애그리거트 루트의 역할을 정리하고, 트랜잭션 범위를 하나의 애그리거트로 제한해야 하는 이유와 ID를 이용한 애그리거트 참조 방식을 설명합니다.
도메인 주도 개발 시작하기 4장을 정리하며, 밸류 타입의 JPA 매핑 방법과 애그리거트를 완전한 상태로 저장·조회하는 전략을 다룹니다.
도메인 주도 개발 시작하기 5장을 정리하며, 스펙을 이용한 동적 검색, 정렬·페이징 처리, @Subselect를 이용한 조회 전용 모델 구현 방법을 다룹니다.
응용 서비스와 표현 영역의 책임을 어떻게 나눠야 하는지, 도메인 로직이 응용 서비스로 새어나가지 않게 하는 방법과 값 검증·권한 검사의 위치를 정리합니다.
한 애그리거트로 처리하기 어려운 기능을 도메인 서비스로 분리하는 방법과, 인터페이스로 추상화해 특정 구현 기술 의존을 줄이는 방법을 정리합니다.
애그리거트를 동시에 수정할 때 발생하는 일관성 문제를 선점 잠금과 비선점 잠금으로 해결하는 방법을 JPA 구현 예시와 함께 정리합니다.
도메인 객체 간에 서로 다른 로직이 섞이는 문제를 이벤트로 분리하는 방법과, 스프링 이벤트 발행·구독, 동기/비동기 처리, 이벤트 저장소 구현까지 정리합니다.
여러 애그리거트를 조합해야 하는 조회 성능 문제를, 명령 모델과 조회 모델을 분리하는 CQRS로 해결하는 방법과 장단점을 정리합니다.