
몇 년 전까지만 해도 내가 아는 도메인이라는 단어는 웹사이트의 주소인 도메인을 의미했다.
실제적인 도메인의 사전적인 의미는 지방 정부의 관할, 학문 영역, 활동 영역, 인터넷 주소 등으로 정의되어있으며, 이 책의 주제인 DDD에서의 Domain은 크게 보아 영역을 구분하는 의미로 사용되며, 소프트웨어로 해결하고자 하는 문제 영역을 나타낸다.
한 도메인은 다시 하위 도메인으로 나눌 수 있으며 각 하위 도메인은 또 다른 하위 도메인을 포함하기도 한다.
이 책은 DDD에 입문하는 사람에게 DDD가 무엇인가부터 시작하여 어떤식으로 구성하고 구현하는지는 상세한 예를들어 설명하고 있기에, 약간의 프로그래밍 지식이 있다면 공부하는데 어려움 없이 책의 진도를 나갈 수 있다.
책 내용의 진행은 객체 기반으로 DDD를 설명하고 있으며 JAVA 코드로 설명이 이뤄지기에 기존에 자바에 익숙한 독자라면 익숙하게 책장을 넘길 수 있을 것 같다.
하지만 잘 모른다 해도 큰 틀을 이해함에는 부족함이 없다고 한다. (실제로도 그런 것 같다.)
DDD에서는 도메인 전문가와 개발자간의 지식 공유가 활발하게 이루어져야하며 상호간에 요구사항을 명확하게 이해하고 진행하는 것이 중요하다. 그렇지 않을 경우 제품 개발에 실패하거나 일정에 차질이 생기는 일이 부지기수이기 때문이다.
책을 넘기며 도메인 모델, 도메인 모델 패턴, 도메인 모델 도출의 순서로 모델을 구상하고 구체화해가는 과정을 익힐 수 있으며, 도출한 모델의 엔티티와 벨류를 구분하는데 있어서 주의해야할 사항 등을 세심하게 설명하고 있어서 이 개념에 익숙하지 않은 독자라 하더라도 손쉽게 감을 잡을 수 있을 것 같다.
도메인 모델에 대한 내용이 마무리되고 나면 아키텍쳐, 애그리거트, 리포지토리와 모델 구현에 대한 내용이 나오고 스프링 JPA를 이용한 조회기능, 응용 서비스와 표현 영역, 도메인 서비스, 애그리거트 트랜젝션 관리, 도메인 모델과 바운디드 컨텍스트, 이벤트, CQRS 의 순서로 내용들이 진행된다.
짧은 시간이었지만 책을 한번 읽고보니 막연하기만 했던 DDD에 대해 좀 더 나은이해를 할 수 있게 되었고, DDD로 프로젝트를 진행해보고 싶다는 생각이 든다.
DDD 자체를 이해하는게 쉽지만은 않다보니 한 번 읽고 모두 흡수할 수 없기에 참고서처럼 옆에 두고 궁금할때마다 열어봐야겠다.
DDD 입문서가 흔치 않은 현재 상황에 가뭄의 단비같은 존재인 것 같다.
[한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.]
도서구매
YES24 – http://www.yes24.com/Product/Goods/108431347
교보문고 – https://www.kyobobook.co.kr/product/detailViewKor.laf?barcode=9791162245385
알라딘 – https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=291420687
인터파크 – https://book.interpark.com/product/BookDisplay.do?_method=detail&sc.prdNo=354607135