도메인주도설계

도메인 영역의 코드를 작성하다 보면 한 애그리거트로 기능 구현이 불가능할 때가 존재한다. 바로 결제 금액 계산 로직인데, 실 결제 금액을 계산할 때는 아래 정보들이 필요하다. 상품 애그리거트 : 구매하는 상품의 가격 필요 주문 애그리거트 : 상품별 구매 개수 필요 할인 쿠폰 애그리거트 : 쿠푠별로 지정한 할인 금액이나 비율에 따라 주문 총 금액을 할인하는 정보 필요 회원 애그리거트 : 회원 등급에 따른 추가 할인 정보 필요 그렇다면 실제 결제 금액을 계산해야하는 주체는 어떤 애그리거트 일까? if. 주문 애그리거트에서 필요한 데이터를 모두 가지게 한다면? (계산 책임을 주문 애그리거트에 할당) 할인 정책이 변경되었을 때 주문 애그리거트가 갖고 있는 구성 요소와 관련이 없음에도 결제 금액 계산 책임이 주문..
애그리거트? 도메인 객체 모델이 복잡해지면 개별 구성요소 위주로 모델을 이해하게 되고 전반적인 구조나 도메인 간의 관계를 파악하기 어려워진다. 관계 파악이 어렵다? 라는 의미는? 확장하기가 어렵다. 세부적인 모델만 이해한 상태로는 코드 수정이 꺼려진다. (전체 모델이 망가질 수 있으므로) 변경을 최대한 회피하는 쪽으로 요구사항을 협의하게 된다. 장기적으로는 코드를 수정하기 더 어렵게 만든다. 위는 애그리거트 단위로 모델을 묶어서 표현한 것 애그리거트를 사용함으로써 모델 간의 관계를 개별 모델 수준과 상위 수준에서 모두 이해가 가능하다. 모델 이해도를 증가시킴 일관성을 관리하는 기준이 됨 (한 애그리거트에 속한 객체는 유사하거나 동일한 LifeCycle을 갖는다.) 이것이 애그리거트의 필요성이다. 유의할 ..
깡냉쓰
'도메인주도설계' 태그의 글 목록