도메인 주도 설계 핵심 | Chap-03 서브도메인과 전략적설계

보람·2023년 8월 2일
0
  • 81 ~ 88 page

서브도메인

  • 전체 비즈니스 도메인의 하위 부분
  • 하나의 바운디드 컨텍스트는 하나의 서브도메인과 1:1로 매칭되는 것이 이상적이다.
    • 1:1 매칭이 쉽지 않다면 모듈(패키지, 네임스페이스)로 분리할 것 -> 바운디드 컨텍스트를 정확하게 유지시키고 핵심 전략 목표에 집중하는 데 도움을 준다.

서브도메인의 유형 세가지

  • 핵심 도메인 : 보편언어를 신중하게 만들기 위한 전략적 투자 영역, 하나의 핵심 도메인 존재, 가장 큰 투자를 필요로 하는 곳
  • 지원 서브도메인 : 이미 존재하는 제품으로 해결할 수 없는 맞춤 제작 개발이 필요한 모델링 영역, 핵심 도메인보다 중요도가 덜하며 아웃소싱을 고려할 수 있다.
  • 일반 서브도메인 : 기존 제품 구매를 통해 바로 충족시킬 수 있는 경우, 아웃소싱 or 엘리트 개발자 없는 팀에서 개발 가능

DDD를 사용하고 있는 프로젝트라면 핵심 도메인에 대한 논의는 반드시 필요하다.

레거시 시스템 통합시 서브도메인을 사용할 수 있는 방법

  • 레거시 시스템들이 핵심 도메인 프로젝트에 어떤 영향을 주고 있는지를 명확히 해야 한다.
  • 레거시 시스템에 많은 논리적 도메인 모델이 존재한다면, 이것을 서브도메인으로 생각해볼 수 있다.
    • 큰 레거시 시스템을 작은 여러개의 서브도메인으로 분리하게 되면 복잡도를 해결할 수 있도록 돕는다.
  • 서브도메인을 활용하면, 작업 중이거나 관련 있는 핵심 도메인을 하나의 간단한 다이어그램 안에 표현해볼 수 있다.
    • 서브도메인 간 관련성과 의존성을 이해하는 데 도움을 준다.
profile
백엔드 개발자

0개의 댓글