도메인 주도 개발 시작하기 - 2/3


최범균님의 기존 책 DDD START!의 개정판. DDD START!는 6년전에 나온 책으로 당시 유일한 DDD관련 국내서로 기억된다. 큰 뼈대는 그대로인데, 그동안 저자의 경험이 더해져 기존책보다 이해하기 더 쉬워진 느낌이다. 물론 그동안 나의 경험치도 쌓였을 것이다.



오른쪽이 개정판
소소한 수정과 저자의 경험이 추가되었다.

최범균님의 책은 예제 중심이라 따라 해 볼 수 있고, 실무적인 내용이 많아서 나오면 꼭 보게된다. 위 내용처럼 새로운 세상을 만났던 저자와는 다르게 나는 에릭 에반스가 쓴 책을 처음 봤을때 마케팅용 상술이라 치부했었다. 아직 소신은 크게 변함 없으나 좋든 싫든 다른 개발자와 소통하려면 DDD를 알아야 하니, 공부하고자 하면 이 책을 추천한다.(일본 저자가 쓴 도메인 주도 설계 철저 입문 (opens new window)이란 책도 좋았다.) 개인적으로 패키지 구성에 많은 도움을 받았다.

# 책에서 배운 것

  • 원칙적으로 모든 값에 대한 검증은 응용 서비스에서 처리한다. 문제점은 사용자에게 좋지 않은 경험을 제공한다는 것이다...(중략)...즉 표현 영역과 응용 서비스가 값 검사를 나눠서 수행하는 것이다.
    • 표현 영역: 필수 값, 값의 형식, 범위등을 검증
    • 응용 서비스: 데이터의 존재 유무와 같은 논리적 오류를 검증
    • 응용 서비스에서 얼마나 엄격하게 검증해야 하는지는 의견이 갈릴수 있다. 필자는 응용 서비스의 완성도가 높아지는 이점때문에 응용 서비스에서 값오류를 검증하는 편이다.
  • 특정 기능이 응용 서비스인지 도메인 서비스인지 감을 잡기 어려울 때는 해당 로직이 에그리거트의 상태를 변경하거나 애그리거트의 상태값을 계산하는지 검사해 보면 된다. 이럴 경우는 도메인 로직
  • 도메인 서비스는 도메인 로직을 표현하므로 도메인 서비스의 위치는 도른 도메인 구성요소와 동일한 패키지에 위치한다.

# 결론

  • 기존책을 봤더라도 다시 볼 가치가 있다.