아키텍처
도메인 주도 설계와 모델 주도 설계 도입하기 - 정산편
두줄요약
정산 도메인에 DDD와 MDD를 적용해 흩어진 지식과 강결합 구조를 정리했습니다. 모델을 단순화하고 책임을 분리해 가독성과 확장성을 높였습니다.
문제 상황
- 리뷰, 주문, 사용자 코드가 서로 얽혀 정산 도메인 수정 시 다른 도메인까지 함께 수정되는 강결합 구조
- 정산 도메인 지식과 코드가 흩어져 있어 역할과 책임이 불명확하고, 커뮤니케이션 비용도 큰 상태
- 요금 항목, 누가, 누구에게라는 여러 기준이 섞여 코드 복잡도가 높아지는 구조
구조와 흐름
- DDD로 도메인 기준 설계를 적용하고, MDD로 모델을 중심에 두어 기획자·설계자·개발자 협업 강화
- 핵심 모델을 SettlementDivision과 SettlementDistribution으로 재정의해 금액 분리와 재결합 흐름 정리
- 도메인 전문가와 반복 논의하며 사용하지 않는 개념을 제거하고 모델 의미를 단순화
선택 이유
- 정산은 서비스 흐름의 마지막에 있어 다른 도메인과의 결합도가 비교적 낮은 첫 적용 대상으로 적합
- 도메인 복잡성과 코드 복잡성이 높아 구조 개선 효과를 확인하기 좋은 영역
- 책임이 명확한 단일 객체로 정리해 정산 분배의 핵심 흐름에 집중하려는 선택
