도메인 주도 개발 시작하기 - DDD 핵심 개념 정리부터 구현까지
최범균 지음 / 한빛미디어 / 2022년 3월
평점 :
장바구니담기


도메인 주도 개발 시작하기


이전부터 도메인드리븐 개발은 스프링과 잘 맞지 않다고 생각했다.
정확히는 '제한적'으로 적용할 수 밖에 없다고 생각했다. 왜냐하면 기존의 루비온레일즈와 같이 도메인드리븐 개발을 하는데에 구조적으로 조금 더 '편리하다'라는 것은 분명 존재하기 때문이다.
그렇지만 이 책은 훌륭히 스프링다운 코드로 DDD가 가능하다 라는 것을 훌륭히 설명한다.

이 책은 흔히 무분별하게 사용되는 '도메인'이라는 것의 정의부터 시작한다. 그리고 그것과 연관된 수 많은 가지들, DTO, 엔티티, 밸류, 상태 등의 설명과 함께
우리가 개발을 할 때의 전체적인 개념을 관통하여 하나하나 realworld의 예제에 가까운 사례로 설명을 한다.
이전에 보았던 이런 류의 책들 중 가장 큰 문제는 '도메인' 이라는 것에만 집착해서 현실에서 하기 힘든 방법, 퓨어하게 JPA를 사용해서 한다라던지 하는 퍼포먼스 또는 생산성을 고려하지 않은 구조를 제안한다는 것이다. 그런데 이 책은 과감히 확장성을 생각해 '마세라티 문제'의 상황에 빠지지 않고 현실에서 수행가능한 수준의 타협안을 제시하는 점이 좋았다.

그리고 시작은 DDD지만 책의 중반부터는 확장을 하면서 발생하는 문제들과 그 해결책을 가볍게나마 제시한다. Locking과 이벤트드리븐, CQRS등의 방식으로 말이다.
물론 이 책의 다 읽는다고 해서 시작할 때 부터 저것들까지 한번에 적용하는 것을 고민하고 실행한다면 정말 배보다 배꼽이 더 큰 사태가 발생하게 될 것이다. 그렇지만 근래 보았던 책 중에서는 가장 깔끔한 예시와 설명으로 발생하게 될 문제를 지적하면서도 그 해결 방법을 자연스레 설명하는 점이 매우 좋았다. 


잡설1. 이 책의 좋은 점 중 하나가 예시로 나온 코드의 퀄리티 그 자체에 있다. 
immutable을 리턴한다던지, 깔끔한 코드 분리라던지, 디자인패턴 적용이라던지 하는 부분에서 훌륭한 코드의 전형을 본 듯하다랄까.
한 명의 개발자로서 보면 행복해지는 느낌의 코드들 이었다. 
즉 단순히 도메인 드리븐을 설명하는 것 외에 그 도메인 드리븐 개발을 위해 필요한 다른 기술들까지 볼 수 있는 훌륭한 책이라고 생각한다.

잡설2. DDD를 위한 번역본 등에서 볼 수 없는 재미있는 디테일도 좋았다. 가령 AGGREGATE의 발음관련 이야기라던지. 정말 한국사람을 위해 쓰여진 책과 같은 느낌이지 않는가.
확실히 더 잘 읽히는 책이다.

잡설3. 애초에 이 책을 '찾아서' 볼 정도라면 이 책에서의 독자 권장 레벨인 초중급은 절대 아닐 것이라고 생각되지만, 서비스 개발에 대하여 A부터 Z까지 한번 맛을 보고 겪었던 어려움을 이러한 방식으로도 풀 수 있구나 라는 관점에서 보는 것을 권장한다.


  "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo