도메인 모델 시작하기
📝 학습 정리
[1.4] 도메인 모델 패턴
- 도메인 계층은 도메인의 핵심 규칙을 구현한다.
- 출고 전에 배송지를 변경할 수 있다
- 주문 취소는 배송 전에만 할 수 있다
ex) 주문 도메인
[1.5] 도메인 모델 도출
도메인을 모델링할 때 기본이 되는 작업은 모델을 구성하는 핵심 구성요소, 규칙, 기능을 찾는 것이다.
주문 도메인의 요구사항
- 최소 한 종류 이상의 상품을 주문해야 한다.
- 한 상품을 한 개 이상 주문할 수 있다.
- 총 주문 금액은 각 상품의 구매 가격 합을 모두 더한 금액이다.
- 각 상품의 구매 가격 합은 상품 가격에 구매 개수를 곱한 값이다.
- 주문할 때 배송지 정보를 반드시 지정해야 한다.
- 배송지 정보는 받는 사람 이름, 전화번호, 주소로 구성된다.
- ✅ 출고를 하면 배송지를 변경할 수 없다.
- 고객이 결제를 완료하기 전에는 상품을 준비하지 않는다.
→ 해당 요구사항에서 주문은 ‘출고 상태로 변경하기’, ‘배송지 정보 변경하기’, ‘주문 취소하기’, ‘결제 완료하기’ 의 기능을 제공한다는 것을 알 수 있다.
요구사항을 통한 도메인 설계
도메인 데이터 구성 파악하기
- 다음 요구사항을 통해 주문 항목이 어떤 데이터로 구성되는지 파악한다.
- 한 상품을 한 개 이상 주문할 수 있다.
- 각 상품의 구매 가격 합은 상품 가격에 구매 개수를 곱한 값이다.
- 따라서, 수량과 amounts 로직을 포함하여 주문 데이터를 구성할 수 있다.
도메인 관계 파악하기
- 다음 요구사항을 통해 Order와 OrderLine의 관계를 파악한다.
- 최소 한 종류 이상의 상품을 주문해야 한다.
- 총 주문 금액은 각 상품의 구매 가격 합을 모두 더한 금액이다.
- 한 종류 이상의 상품을 주문할 수 있으므로, Order는 최소 한 개 이상의 OrderLine을 포함해야 한다.
- 또한, 총 주문 금액은 OrderLine에서 구할 수 있다.