AI 요약
이 기사는 도메인 주도 설계(DDD)에 대한 흔한 오해를 해소하고, 핵심 개념인 '도메인'과 '유비쿼터스 언어'를 올바르게 이해하는 방법을 제시한다. 도메인은 처음부터 명확히 알 수 있는 것이 아니라 업무 이해가 깊어짐에 따라 변화하며, 유비쿼터스 언어는 단순한 용어집이 아니라 상태 전이와 업무 규칙을 포함한 개념임을 강조한다. 또한 서비스를 지나치게 작게 분리하지 말고, 단일 프로세스 모노리스에서 지속적인 리팩토링을 통해 도메인을 발견해 나가는 접근법을 권장한다.
핵심 포인트
- 도메인은 업무 담당자들이 동일한 용어로 소통하는 업무 범위로, 생각보다 크고 깔끔하게 분리되지 않음
- 유비쿼터스 언어는 단순 용어집이 아닌, 엔티티 상태 전이와 업무 규칙(예: '주문은 발송 후 취소 불가')을 포함
- 동일한 단어(예: '고객')도 부서(영업, 경리)에 따라 의미가 다를 수 있음
- 서비스를 너무 작게 분리하면 리팩토링이 어려워지므로, 초기에는 모노리스로 시작해 도메인 이해 후 분리 권장
향후 전망
- DDD 실무 적용 시 '업무 담당자 관찰'과 '지속적 리팩토링'이 더욱 중요해질 것
- 마이크로서비스 아키텍처와 DDD의 균형 잡힌 적용이 소프트웨어 설계의 핵심 과제로 남을 전망
출처:hatena (zenn.dev)
