콘텐츠로 이동

도메인(Domain)과 하위 도메인(Subdomain)

Why: 왜 도메인을 분할하고 중요도를 평가하는가?

비즈니스 도메인(Domain)은 너무 거대하고 복잡하여 한 번에 이해하거나 하나의 시스템으로 설계하는 것이 불가능합니다. 따라서 큰 도메인을 명확히 파악하고 해결하기 위해 여러 개의 하위 도메인(Subdomain)으로 반드시 분할해야 합니다. 또한 분할 후에는 비즈니스 전략에 따라 각 도메인의 중요도를 평가해야 합니다. 이를 통해 한정된 개발 리소스를 어디에 집중하여 효율을 극대화할 것인지 결정할 수 있습니다.

What: 문제 영역, 해결 공간, 그리고 하위 도메인 분류

  • 도메인(Domain)은 사용자가 소프트웨어를 통해 해결하고자 하는 비즈니스 문제 영역(Problem Space)입니다. 소프트웨어 개발은 이 도메인의 문제를 파악하고 해결하는 전반적인 과정을 의미합니다.

    문제 영역(Problem Space)과 해결 공간(Solution Space)문제 영역은 현실의 비즈니스 요구 사항 그 자체이며 "무엇(What)을 해결해야 하는가?"에 집중합니다. 해결 공간은 개발자가 코드로 구현한 공간이며 "어떻게(How) 기술적으로 해결할 것인가?"에 집중합니다. 중요도에 따라 하위 도메인(Subdomain)은 다음 3가지로 분류됩니다.

  • 핵심 도메인(Core Domain): 비즈니스의 핵심이자 이윤을 창출하며, 고객이 자사의 서비스를 선택하는 유일한 이유입니다.
  • 지원 도메인(Supporting Domain): 핵심 도메인을 지원하나 차별성은 없으며, 고유 로직이 있어 외부 솔루션을 쓰기 애매한 영역입니다.
  • 일반 도메인(Generic Domain): 특별한 커스텀 로직이 전혀 필요 없는 보편적인 기능 영역입니다.

How: 이커머스 시스템의 도메인 분할 예시와 상품 도메인 적용

거대한 도메인을 실무에 맞게 쪼개는 과정을 이커머스 시스템에 적용해 볼 수 있습니다. 이커머스 도메인은 주문(Order), 결제(Payment), 배송(Shipping), 회원(Member) 등으로 명확하게 분할할 수 있습니다. 분할된 도메인 중 이윤을 창출하는 핵심 도메인(Core Domain)에 조직의 개발 리소스를 가장 우선적으로 집중해야 합니다. [상품(Product) 도메인 기준 하위 도메인 분류 예시] - 핵심 도메인 (상품 추천): 고객의 구매를 직접 유도하는 상품 개인화 추천 로직으로, 회사의 모든 핵심 개발 역량을 집중하여 직접 구축합니다. - 지원 도메인 (상품 전시): 핵심 도메인을 돕기 위해 상품을 분류하고 진열하는 필수 로직이지만, 경쟁력 자체는 아니므로 적정 리소스만 분배합니다. - 일반 도메인 (결제/알림): 특별한 커스텀 로직 없이 외부 PG사나 알림톡 API 등 기성 솔루션을 도입하여 자체 개발을 최소화합니다.