Decompose by Business Capability vs. Decompose by Subdomain

  1. Decompose by Business Capability

    • 정의: 비즈니스의 기능적 역량을 중심으로 시스템을 분해하는 방식으로, 조직의 주요 기능(예: 판매, 마케팅, 고객 서비스 등)에 따라 모듈을 나누는 방법.
    • 특징:
      • 비즈니스의 주요 역량을 중심으로 서비스나 모듈을 설계.
      • 시스템의 경계가 기능적인 책임(Functional Responsibility)에 맞춰 설정됨.
      • 기술적으로 독립적이고 명확한 책임 분리가 가능.
      • 조직 구조와 자연스럽게 연계되므로 비즈니스와 IT의 연계성이 높아짐.
      • 비즈니스의 장기적 확장성과 변화를 쉽게 수용할 수 있음.
    • 예시:
      • 주문 관리 시스템(Order Management System), 재고 관리 시스템(Inventory Management System) 등으로 분할.
  2. Decompose by Subdomain

    • 정의: 도메인 주도 설계(DDD, Domain-Driven Design)에서 제안된 방식으로, 도메인을 여러 하위 도메인으로 나누고 이를 기반으로 시스템을 분해하는 방법.
    • 특징:
      • 도메인의 문제 공간을 세분화하여 각 하위 도메인을 중심으로 설계.
      • 하위 도메인은 주 도메인(Core Domain), 지원 도메인(Supporting Domain), 일반 도메인(Generic Domain)으로 나뉘며 각각의 도메인에 맞는 설계를 적용.
      • 기술적으로는 비즈니스 로직과 관련된 문제를 해결하는 데 최적화됨.
      • 하위 도메인 간의 독립성이 강조되며, 상호작용을 최소화하도록 설계.
    • 예시:
      • 전자상거래 도메인에서 카탈로그 관리(Catalog Management), 결제 처리(Payment Processing), 배송 관리(Shipping Management) 등으로 분할.

Decompose by Business Capability는 조직의 기능적 관점에서 시스템을 구조화할 때 적합하며, 비즈니스와 기술의 연계를 중시하는 경우에 유용하다.
Decompose by Subdomain은 도메인의 문제를 세분화하고 기술적 복잡성을 다루기 위해 설계된 방식으로, 도메인 주도 설계 원칙을 사용하는 프로젝트에 더 적합하다.
두 접근 방식은 상호 배타적이지 않으며, 프로젝트의 요구사항과 목표에 따라 혼합하여 사용할 수도 있다.

Decompose By Business Capability vs. Decompose by Subdomain 비교 분석

비교 항목Decompose by Business CapabilityDecompose by Subdomain
초점비즈니스의 주요 기능적 역량도메인의 문제 공간과 하위 도메인
설계 기준조직의 기능적 책임과 역량도메인 주도 설계 원칙과 하위 도메인 분리
적용 시점비즈니스와 IT 간의 명확한 연계를 원할 때도메인의 복잡성을 해결하고 문제를 구체화해야 할 때
구성 요소 간 경계기능적 책임에 따라 경계 설정도메인 경계(Context Boundary) 설정
조직 연계성조직 구조와 자연스럽게 연결됨조직 구조와는 독립적, 도메인 모델링 중심
확장성비즈니스 기능 확장에 유리도메인 요구사항 변화에 유리
복잡도 관리조직적인 복잡도 관리에 유리도메인의 세부적인 복잡도 관리에 유리
대표 사례CRM 시스템, ERP 모듈전자상거래의 하위 도메인(결제, 배송, 재고 관리 등)
도구 및 방법론비즈니스 프로세스 분석, BPMN도메인 주도 설계(DDD), Event Storming
강점비즈니스와 기술의 연계성이 뛰어나며, 이해하기 쉽고 관리 용이도메인의 복잡한 문제 해결에 최적화, 기술적 독립성이 뛰어남
단점세부적인 도메인 문제 해결에는 한계비즈니스 프로세스와 완전히 일치하지 않을 수 있음

참고 및 출처