본문 바로가기
DDD(Domain Driven Design)

Domain Driven Design Quickly 문서에 대한 간략한 소개

by csk 2010. 6. 21.


 

-       전체 106 페이지 분량의 영문 pdf 문서

-       웹으로 무료 제공되고 있음

 

도메인 주도 설계는 프로젝트의 핵심 성공요소인 원활한 의사소통을 위해, 도메인의 개념을 그대로 투영하는 핵심적 모델을 프로젝트의 정 중앙에 두고, 모든 이해당사자가 이를 바라보고 시스템 개발을 진행 하도록 하는 접근방식 입니다.

 

모든 이해 당사자가 하나의 모델을 가지고 이야기 하기 위해서는 도메인 모델과 소프트웨어 모델 즉 코드 간의 표현적 차이를 최소화 해야 합니다. 도메인 주도 설계는 EJB와 같은 구현 기술이 소프트웨어 개발을 주도함으로써 발생되는 여러 가지 문제점을 해결하기 위해, 기술 주도적인 방식이 아닌 도메인 주도적인 방식으로 소프트웨어를 개발할 것을 주장합니다. 이러한 면에서 이미 소개된 바 있는 MDA의 연장선상에 있는 개념으로 이해할 수 있습니다. 그러나, MDA가 플랫폼에 독립적인 모델(PIM), 플랫폼에 의존적인 모델(PSM), 모두와 둘 간의 연결을 위한 meta model mapping 규칙을 중요시 한다면 도메인 주도 설계는 모든 소프트웨어의 시작점인 도메인 모델 자체에 중점을 두고, 이를 표현하기 위한 도메인 명세 언어(DSL, 본 문서에서는 유비쿼터스 언어라고 지칭함) 및 이를 바로 설계모델과 구현코드로 제공하는 프레임워크, 마지막으로 도메인 모델 수준과 코드 수준에 대한 변경이 지속적으로 분리되어 적용될 수 있도록 하는 아키텍처에 집중한다고 할 수 있습니다.

 

도메인 주도 설계를 성공적으로 적용하기 위해서는 기본적인 두 가지 요소가 갖추어져야 합니다. 하나는 도메인 명세 언어를 통해 고객과 개발자들이 공통된 용어를 사용하도록 함으로써 의사소통의 단절 및 오해로 잘못된 소프트웨어가 개발되는 것을 방지할 수 있도록 하는 것이며, 두 번째는 분석/설계/구현의 모든 단계를 관통하는 하나의 모델을 만들어 내야 한다는 것입니다.

 

이를 위해 본 문서에서는 도메인 주도 설계의 기본 개념과 유비쿼터스 언어를 소개하고, 도메인주도 설계를 지원하기 위한 simple한 아키텍처를 설명하며 이를 프로젝트 진행에 따라 이 모델에 가해질 변경을 해결하기 위한 방법들을 리팩토링과 무결성 보존의 두가지 측면에서 제시하고 있습니다.

 

본 문서의 서두에서 소개하는 바와 같이 DDD의 원 서적 전체를 읽는 것이 가장 좋은 방법이겠으나, 이에 보다 쉽게 접근하기 위한 예습 또는 도입의 개념으로 본 문서의 일독이 훌륭한 역할을 할 것이라고 생각합니다.


'DDD(Domain Driven Design)' 카테고리의 다른 글

DDD Quickly 번역서 요약  (2) 2011.08.22