ohmyb***
2022-04-17

실제 업무에 도메인 주도 설계(DDD)를 적용할 수 있도록 기본적인 DDD의 핵심 개념을 익히고 구현을 통해 학습할 수 있도록 구성한 DDD 입문서
이 책은 도메인 모델을 이용하여 애플리케이션을 구현하는 데 필요한 내용을 다루며, DDD를 처음 접하는 개발자를 위한 책이다.
참고로 예제 코드는 자바로 되어 있는데, 자바를 몰라도 OOP나 다른 언어에 대한 개념에 있는 개발자라면 이해하는 데에 큰 무리는 없다.
데이터에 종속적인 애플리케이션 개발의 경우 모델링과 실제 개발과의 불일치가 발생할 수 있다. 이러한 불일치를 해소하기 위한 노력 중 하나가 바로 DDD이다. 그리고 도메인 주도 설계는 공통의 언어(*유비쿼터스 언어)를 사용하여 도메인과 구현을 충분히 만족하는 모델을 만든다.
여기서 공통의 언어라는 것은 사용자와 개발자가 동일한 언어로 소통하는 것을 말한다.
이 책의 각 챕터는 다음과 같다.
1. 도메인 모델 시작하기
2. 아키텍처 개요
3. 애그리거트
4. 리포지터리와 모델 구현(JPA 중심)
5. 스프링 데이터 JPA를 이용한 조회 기능
6. 응용 서비스와 표현 영역
7. 도메인 서비스
8. 애그리거트 트랜잭션 관리
9. 도메인 모델과 바운디드 컨텍스트
10. 이벤트
11. CQRS
이 책에서 다루는 내용중 개념적인 내용은 다음과 같다.
- 도메인과 도메인 모델
- 도메인 아키텍처: 표현, 응용, 도메인, 인프라스트럭처
- 도메인 영역의 주요 구성요소: 앤티티, 밸류, 애그리거트(복잡한 도메인 모델을 관리 가능한 단위로 묶어주는 역할), 리포지터리, 도메인 서비스
왜 이런 형태를 사용하는지를 잘 고민해 보면 좋을 것 같다. 왜냐면 소프트개발 방법론이라는 것이 보다 좋은 소프트웨어를 만드는 것이므로, 방법론에 대한 깊은 이해없이 따라하기 식이거나 구조를 맞추는 정도라면 오히려 비효율적일 것 같다.