5장. 시스템 설계: 도메인을 구조화하는 기술➃

DDD(도메인 주도 설계)의 실용적 접근

by jeromeNa

DDD(도메인 주도 설계)의 실용적 접근


도메인 주도 설계는 복잡한 비즈니스 도메인을 다루는 시스템에서 특히 유용한 접근법이다. 온라인 쇼핑몰 같은 복잡한 도메인에서 DDD의 핵심 개념들을 어떻게 실제로 적용할 수 있는지 살펴보자.


바운디드 컨텍스트(Bounded Context)로 도메인 나누기


온라인 쇼핑몰을 하나의 거대한 도메인으로 다루면 복잡도가 관리 불가능한 수준까지 올라간다. 대신 비즈니스 영역별로 명확한 경계를 그어서 바운디드 컨텍스트(어떤 개념이나 용어가 의미를 갖는 ‘맥락(Context)’의 범위를 명확히 구분하는 것)로 나누는 것이 효과적이다.


쇼핑 컨텍스트는 고객의 상품 검색부터 주문 완료까지를 담당한다. 이 영역에서 "고객"은 상품을 구매하는 사람이고, "상품"은 구매 가능한 아이템 목록이다. 상품 검색, 장바구니 관리, 주문 생성, 결제 처리가 이 컨텍스트의 핵심 업무다.


판매 관리 컨텍스트는 상품 등록, 재고 관리, 주문 처리를 담당한다. 여기서 "고객"은 주문을 넣은 사람 정도의 의미이고, "상품"은 관리해야 할 재고 아이템을 의미한다. 같은 용어라도 컨텍스트에 따라 다른 의미와 속성을 가진다.


물류 컨텍스트는 배송 계획, 배송 추적, 배송 완료를 담당한다. 이 영역에서는 "주문"이 배송해야 할 물건 정도의 의미이고, "고객"은 배송받을 사람이다. 지리적 위치와 배송 일정이 핵심 요소다.


각 컨텍스트는 독립적으로 발전할 수 있다. 쇼핑 컨텍스트에서 새로운 결제 방식을 추가해도 물류 컨텍스트에는 영향이 없다. 판매 관리 컨텍스트에서 재고 관리 방식을 바꿔도 다른 컨텍스트는 그대로 유지된다.


도메인 이벤트로 컨텍스트 간 협력

지금 바로 작가의 멤버십 구독자가 되어
멤버십 특별 연재 콘텐츠를 모두 만나 보세요.

brunch membership
jeromeNa작가님의 멤버십을 시작해 보세요!

활동 시기의 반 이상을 개발자로 살아왔습니다. 앞으로의 삶은 글과 창작자, 후배 양성으로 살아가 보려 합니다.

669 구독자

오직 멤버십 구독자만 볼 수 있는,
이 작가의 특별 연재 콘텐츠

  • 총 62개의 혜택 콘텐츠
최신 발행글 더보기