주하니 서하아빠

3장 서브도메인과 전략적 설계 본문

스터디/도메인 주도 설계 핵심

3장 서브도메인과 전략적 설계

JUHANPAPA 2023. 8. 20. 17:52
  • DDD프로젝트를 진행할 때, 항상 그 안에는 다수의 바운디드 컨텍스트가 존재한다. 이 바운디드 컨텍스트들 중 하나는 핵심 도메인 이 될것이다. 다른 바운디드 컨텍스트에는 다양한 서브도메인이 존재할 것이다.
  • 특정 보편언어로 모델을 서로 다르게 나누고 여러 개의 바운디드 컨텍스트로 구성하는 것의 중요성을 앞선 장에서 확인함
  • 하나의 바운디드 컨텍스트와 하나의 서브도메인이 최적 ( * 하나의 바운디드 컨텍스트 안에 다수의 서브도메인이 있을 수 있는데 이 경우 최적의 모델을 구성했다고 보기 힘듬)

서브 도메인은 무엇인가?

  • 전체 비즈니스 도메인의 하위 부분이다.

서브 도메인의 유형

  1. 핵심 도메인 : 보편언어를 신중하게 만들기 위한 전략적 투자영역. 이 도메인은 다른 경쟁자들에 대한 차별화를 만들 영역이기 때문에 기업의 프로젝트 목록에서 높은 우선순위를 갖는다. 핵심 도메인은 소프트웨어에서 가장 큰 투자가 필요한 곳.
  2. 지원 서브도메인: 이미 존재하는 제품으로 해결할 수 없는 맞춤 제작 개발이 필요한 모델링 영역. 핵심 도메인과 같은 투자 방식을 동일하게 따를 필요는 없음. 너무 큰 투자를 하지 않기 위해 아웃소싱을 고려해 볼 수 있음.
  3. 일반 서브도메인: 기존 제품 구매를 통해 바로 충족시킬 수 있는 영역. 아웃소싱 or 엘리트 개발자가 없는 팀에서 직접 개발 가능함. 일반 서브도메인을 핵심 도메인으로 오해하지 않도록 주의.

 

복잡성 다루기

요약

  • 서브도메인이 무엇이고, 문제 영역과 해결 영역에서 어떻게 사용하는가?
  • 핵심 도메인과 지원 서브도메인, 일반 서브도메인의 차이
  • 큰 진흙 덩어리 레거시 시스템과의 통합을 고려할 때, 서브도메인을 사용할 수 있는 방법
  • DDD의 바운디드 컨텍스트와 서브도메인을 일대일 관계로 맺는것의 중요성
  • 핵심 도메인과 지원 서브도메인을 2개의 서로 다른 바운디드 컨텍스트로 분리하는 것이 현실적이지 않을 때, DDD 모듈로 그것을 분리하는 방법

참조

도메인 주도 설계에서의 전략적 설계 | SK(주) C&C’s TECH BLOG (engineering-skcc.github.io)