DDD 학습 계기
DDD가 뭐지?
도메인-드리븐 디자인이 뭐지?
왜 도메인-드리븐한 디자인이 필요하지?
개념인가? 실제 구현가능한 부분인가?
내 프로젝트는 domain-driven 하게 design 되었을까?
어떻게 프로젝트를 더 domain-driven 하게 만들 수 있을까?
어떻게하면 합리적인 도메인 모델링을 진행할 수 있을까?
내가 생각했던 DDD는?
최근 분산시스템, 마이크로서비스 아키텍처와 관련된 책을 읽고, 프로젝트를 진행하다보니 Domain-Driven Design, Bounded Context, Aggregate 와 같은 키워드들을 여러번 마주하게 되었다. 그래서 찾아본 DDD는 이렇다.
Domain-Driven Design은 마이크로서비스 형식의 아키텍처에만 적용되는 개념이 아니다. DDD는 비즈니스의 개념적인 부분들을 유지보수와 확장에 용이한 어플리케이션의 서비스or컴포넌트or모듈들로 구성할 수 있게 도움을 주는 설계방법이다.
제목대로 DDD "개발"을 시작하는 책에 가깝다
- 도메인 주도 개발 시작하기 by 최범균, 한빛미디어 (과거 DDD Start)
- 도메인 주도 설계 by 에릭 에반스, 위키북스
(내가 찾아본 기준) DDD 관련해서 가장 많이 언급되는 책은 위 두가지였다.제목에서부터 이미 각각의 책에 어떤 성격의 내용들이 들어있을지 상상 할수 있었다. 1번 책은 DDD를 (코드를 작성할 정도로) 현실의 시작하는 사람을 위해, 2번책은 DDD와 관련된 개념들과 예제들로 구성되어 있을 것이다. 제목 그대로 "개발"과 "설계"의 차이. 그래도 Start라는 제목의 책으로 학습을 시작하면 더욱 도움이 될것이라는 생각으로 1번 책을 먼저 구매했다.
과거 DDD Start! 라는 제목으로 출간되었던 책이므로, DDD 비기너에게 좋을 것이라고 생각했는데, 좀 추상적으로 표현하자면 DDD 개념과 예제가 이해하기 쉽게 적절히 균형잡힌 내용을 기대했다.
1번, 도메인 주도 개발 시작하기는 도메인, 모델, 애그리거트, 바운디드 컨텍스트에 대해서 예시를 통해 설명해준다. 초반에는 내가 예상한대로 가지만 후반부로 갈수록 Spring 과 JPA 을 예제로한 부분이 너무 많아서 부담스러웠다. DDD를 이해하기 위한 예제를 넘어서 DDD를 Spring JPA로 적용하는 내용이 나온것으로 생각할 수도 있겠다. 기습공격은 아니었다. 책의 도입부에서 Spring + JPA 기술에 대한 사전지식을 언급을 하기는 한다. 그래서 -DDD START! 도메인 주도 설계 구현과 핵심 개념 익히기- 라는 제목에서 -도메인 주도 개발 시작하기-라는 제목으로 변경한 것으로 보인다.
순서가 없었다
- 도메인 주도 개발 시작하기 by 최범균, 한빛미디어 (과거 DDD Start)
- 도메인 주도 설계 by 에릭 에반스, 위키북스
이번에는 두 책을 번호가 아닌 bullet-point로 정렬했다. 나는 두 책 구매했고 두 책 모두 읽을 예정이지만 DDD의 개념과 원리를 이해하고 싶다하면 에릭 에반스의 도메인 주도 설계 책을 추천하고 싶다. 그리고 나서 "그래서 DDD를 어떻게 프로젝트에 적용하지? 자바와 Spring과 JPA로된 예시도 필요해!" 라는 생각이 든다면 "도메인 주도 개발 시작하기 by 최범균, 한빛미디어 (과거 DDD Start)" 라는 책을 권하고 싶다.
'Books' 카테고리의 다른 글
대체 뭐가 문제야 by 제럴드 M. 와인버그 (0) | 2022.04.16 |
---|---|
"감정의 발견 by 마크 브래킷" 독후감 (0) | 2022.04.03 |
"함께 자라기: 애자일로 가는길" by 김창준, 인사이트 (0) | 2022.02.27 |
[ 학습 후기와 내용 정리 ] 코딩 인터뷰 완전 분석: 189가지 프로그래밍 문제와 해법 (0) | 2021.10.24 |
[학습 후기 & 내용 정리] "이펙티브 자바 3/E" - 조슈아 블로크 (0) | 2021.10.20 |