This is an old revision of the document!
Domain-Driven Design
서문
1부 동작하는 도메인 모델 만들기
Part I: Putting the Domain Model to Work
서론
용어 정의
도메인
모델
도메인 지식의 부담을 해소하기 위한 도구
대상을 단순화 한 것
도메인 지식을 선택적으로 단순화하고 의식적으로 구조화한 형태
도메인 지식을 조직화하고 가장 중요한 요소를 구분하는 팀의 합의된 방식 01 동작하는 도메인 만들기, 4p
프로젝트에 참여한 사람들의 머릿속에 축적된 개념을 모아 놓은 것으로서 도메인에 대한 통찰력을 반영하는 용어와 관계로 표현된다. 02 의사소통과 언어 사용, 23p
도메인 모델
도메인 주도 설계에서의 모델의 유용성
DDD에서는 아래의 세 가지 기본적인 쓰임새에 따라 모델을 선택한다
모델은 모든 팀 구성원이 사용하는 언어의 중추
모델은 지식의 정수만을 뽑아낸 것이다
소프트웨어의 본질
해당 소프트웨어의 사용자를 위해 도메인에 관련된 문제를 해결하는 능력. 그 뿐만 아니라 모델링 기법을 연마해서 도메인 설계에 통달해야 한다.
대부분의 유능한 개발자는 다뤄야 할 특정 도메인을 학습하는 데 관심이 많지 않으며,
더군다나 도메인 모델링 기법을 쌓는 데는 더더욱 전념하지 않는다.
엔지니어들은 자신의 기술력을 훈련할 수 있는 정략적인 문제를 좋아한다.
Chapter
2부 모델 주도 설계의 기본 요소
Part II: The Building Blocks of a Model-Driven Design
구현을 모델과의 밀접한 관계로 유지하기 위한
모델링과 설계의 우수 실천 법을 적용해야 한다.
…
도메인 주도 설계 과정을 탄력성 있게 만들려면 개발자들은 잘 알려진 근본 원리들이 어떻게 Model-Driven Design을 뒷받침하는지 이해해야 한다.
…
3개의 장은 패턴 언어로로 구성돼 있으며, 미묘한 모델의 특징과 설계 의사결정이 어떻게 도메인 주도 설계 과정에 영향을 주는지 보여주겠다
…
정교한 모델은 가장 근본적인 사항에 관심을 가질 때만 비로소 복잡성을 헤쳐나갈 수 있으며, 이는 팀에서 확신을 갖고 결합할 수 있는 상세 요소라는 결과로 나타난다.
Chapter
3부 더 심층적인 통찰력을 향한 리팩터링
Part III: Refactoring Toward Deeper Insight
리팩터링 수준
Levels of Refactoring
시스템의 생존력에 가장 큰 영향을 미치는 리팩터링은
(기술적인 관점보다)
도메인에 대한 새로운 통찰력을 얻었을때 수행하거나
코드를 사용해서
모델이 표현하고자 하는 바를 명확하게 드러내고자 수행하는 경우다.
(= 심층 모델을 향한 리팩터링)
리팩터링의 목표는 개발자가 단순히 코드가 수행하는 바를 이해하는 것뿐만 아니라
왜 그렇게 수행되는지를 이해하고 도메인 전문가와의 의사소통에 이를 연관시키는 것이다.
심층 모델
심층 모델/유연한 설계
발견 과정
Chapter
4부 전략적 설계
Part IV: Strategic Design
Chapter