도메인 모델 시작하기

date
Apr 2, 2025
slug
DDD-start-1
status
Public
tags
DDD
author
summary
도메인을 이해해보자
type
Post
thumbnail
스크린샷 2025-04-02 12.11.27.png
updatedAt
Apr 2, 2025 04:38 AM
category

📝 학습 정리


[1.4] 도메인 모델 패턴

  • 도메인 계층은 도메인의 핵심 규칙을 구현한다.
    • ex) 주문 도메인
    • 출고 전에 배송지를 변경할 수 있다
    • 주문 취소는 배송 전에만 할 수 있다

[1.5] 도메인 모델 도출

💡
도메인을 모델링할 때 기본이 되는 작업은 모델을 구성하는 핵심 구성요소, 규칙, 기능을 찾는 것이다.

주문 도메인의 요구사항

  1. 최소 한 종류 이상의 상품을 주문해야 한다.
  1. 한 상품을 한 개 이상 주문할 수 있다.
  1. 총 주문 금액은 각 상품의 구매 가격 합을 모두 더한 금액이다.
  1. 각 상품의 구매 가격 합은 상품 가격에 구매 개수를 곱한 값이다.
  1. 주문할 때 배송지 정보를 반드시 지정해야 한다.
  1. 배송지 정보는 받는 사람 이름, 전화번호, 주소로 구성된다.
  1. ✅ 출고를 하면 배송지를 변경할 수 없다.
  1. 고객이 결제를 완료하기 전에는 상품을 준비하지 않는다.
→ 해당 요구사항에서 주문은 ‘출고 상태로 변경하기’, ‘배송지 정보 변경하기’, ‘주문 취소하기’, ‘결제 완료하기’ 의 기능을 제공한다는 것을 알 수 있다.
 

요구사항을 통한 도메인 설계

도메인 데이터 구성 파악하기
  • 다음 요구사항을 통해 주문 항목이 어떤 데이터로 구성되는지 파악한다.
    • 한 상품을 한 개 이상 주문할 수 있다.
    • 각 상품의 구매 가격 합은 상품 가격에 구매 개수를 곱한 값이다.
  • 따라서, 수량과 amounts 로직을 포함하여 주문 데이터를 구성할 수 있다.
 
도메인 관계 파악하기
  • 다음 요구사항을 통해 Order와 OrderLine의 관계를 파악한다.
    • 최소 한 종류 이상의 상품을 주문해야 한다.
    • 총 주문 금액은 각 상품의 구매 가격 합을 모두 더한 금액이다.
  • 한 종류 이상의 상품을 주문할 수 있으므로, Order는 최소 한 개 이상의 OrderLine을 포함해야 한다.
  • 또한, 총 주문 금액은 OrderLine에서 구할 수 있다.
 

📎 출처