[SA] DDD (Domain Driven Design)

도메인 주도 설계에 대해 알아보자.
Hi's avatar
May 15, 2024
[SA] DDD (Domain Driven Design)

✅ DDD (Domain Driven Design)

notion image
📋
도메인 주도 설계란 2003년 에릭에반슨의 도서에서 처음 알려진 모델로, 도메인 설계나 개발 작업의 중심에 도메인 모델을 두고 반복적으로 변경 및 진화시켜 프로그램을 구현하는 개발 방법론이다.
 
 

✅ 비즈니스 도메인

  • 기업의 주요 활동 영역을 정의
  • 회사가 고객에게 제공하는 서비스
    • Fedex: 배송 서비스
    • Starbucks: 커피 및 음료 제공 서비스
  • 기업은 여러 개의 도메인을 운영할 수도 있다.
    • Amazon: 소매업과 클라우드 서비스 제공
    • Uber: 차량 공유 서비스와 음식 배달, 자전거 공유 서비스 등 제공
 

✅ 하위 도메인

  • 비즈니스 도메인의 목표 달성을 위해서는 여러가지 하위 도메인을 운영해야 한다.
  • 하위 도메인은 고객에게 제공하는 서비스의 단위
    • Starbucks
      • 비즈니스 도메인: 커피 및 음료 제공 서비스
      • 하위 도메인: 부동산 매매/임대, 직원 고용, 재정 관리 등
 
 

✅ DDD의 장단점

장점

  • SW Life Cycle 동안 용이한 커뮤니케이션
  • 모듈화, 캡슐화 기반 유연성 향상
  • 현재 상황에 적합한 SW 개발
 

단점

  • 도메인 전문가의 참여가 필수
  • 기존 도메인의 관행을 개선하기 어려움
  • 기술적으로 복잡한 프로젝트에 부적합
 
📋
DDD는 직관적인 도메인 연관 관계로 명확하게 설계 및 기능 구현이 가능한 프로젝트에 적용하는 것이 좋다.
 
Share article
RSSPowered by inblog