도메인 주도 설계 DDD

24px-Disambig_grey.svg.png 다른 뜻에 대해서는 장거리 직통 전화 문서를 참조하십시오.

1 개요[편집]

domain-driven design; DDD
도메인 주도 설계, 도메인 주도 디자인, 도메인 구동 디자인
  • 소프트웨어 설계 기법의 하나
  • 복잡한 도메인의 설계는 모델 기준으로 해야 함
  • 데이터와 애플리케이션을 설계할 때 업무 도메인별로 분리하여 설계
  • 시스템을 구현하기 위해 특정 기술이 아니라 도메인과 그 로직에 초점을 두어야 함
  • 시스템 요구를 기술하기 위해 도메인 전문가가 도메인 모델 제공
  • 사용자, 개발자가 참고할 수 있는 공통 언어를 형성해야 함
  • 다층 아키텍처의 객체지향 시스템에서 도메인층을 기술하는 것에 중점을 둠

2 도메인 모델 요소[편집]

요소(한국어) 요소(영어) 설명
엔티티 entity
  • 도메인 모델 내의 객체
  • 고유식별자를 가짐
  • 자신의 수명주기를 가짐
  • 속성이 아니라 연속성, 식별성에 의해 정의됨
  • 예: 주문(Order), 회원(Member), 상품(Product)
값 객체 value object
  • 사물의 속성을 기술하는 객체
  • 보통 식별자 없음
  • 읽기 전용 객체
  • Flyweight 패턴을 이용해 공유
  • 예시: 주소(Address), 금액(Money)
서비스 service 조작이 객체에 속하지 않는 경우에 서비스로 구현
리파지토리 repository 도메인 객체 취득은, 저장소 변경이 용이하도록, 리파지토리 객체가 전담 처리
팩토리 factory 도메인 객체 생성 메소드는, 변경이 용이하도록 팩토리 오브젝트가 전담 처리

Maintaining_Model_Integrity.png

3 같이 보기[편집]

4 참고[편집]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}