티스토리 뷰

DDD : 효과적인 모델링의 요소

  • 참고 도서 : Domain Design Driven (Eric Evans / Wikibooks / 2011)
  • 다음과 같은 사항들을 통해 성공적인 모델링을 이끌어 낼 수 있다.

모델과 구현의 연계

  • 초기 프로토타입을 작성할 때 컴포넌트간의 연결을 확립하는 모델을 정하고, 실제 구현시(반복되는 스프린트) 내내 이 모델을 유지한다.
  • 모델을 확립할 때는 해당 도메인을 실제로 알고있는 전문가와 개발자가 머리를 맞대고 시나리오를 통한 공통 요소를 찾아야한다.

모델을 기반으로 하는 언어 정제

  • 처음 모델을 작성할 때 실제 도메인을 알고 있는 전문가가 해당 도메인에 대한 내용을 개발자에게 설명을 해야한다. 이 과정에서 공통으로 사용되는 언어가 결정되고 서비스, 혹은 개발 과정에서 언어(용어)에 대한 혼선을 막을 수 있다.
  • 개발에서의 모델 용어와 실제 도메인 모델의 용어가 통일 된다면, 의사소통시 별도의 해석 없이도 의도한 바를 정확히 이해할 수 있다.

풍부한 지식이 담긴 모델 개발

  • 모델은 단순한 데이터들의 집합(스키마)가 되어서는 안된다. 모델은 복잡한 문제를 해결하는 데 필요한 다양한 지식이 포함되어야 한다.

모델의 정제

  • 모델이 완성되어감에 따라 추가적인 개념과 지식들이 포함되며, 이 과정에서 쓸모 없거나 중요하지 않은 개념이 제거된다.
  • 만약 불필요한 개념과 필요한 개념이 혼용된 모델이라면 본질적인 개념만을 식별할 수 있도록 다시 모델링 한다.

브레인스토밍과 실험

  • 스케치, 토론, 논쟁을 통해 모델링에 대한 훈련이 지속적으로 유지되어야 한다. 이 과정에서 해당 모델의 타당성을 빠르게 파악할 수 있는 힘이 길러진다.
  • 이 과정에서 개발팀과 실제 도메인 관련자들의 지식이 모델로 정제된다.

  • Origin TIL : https://github.com/uyu423/TIL

공유하기 링크
태그 클라우드
, ,
프로필사진

Yowu (Yu Yongwoo)

그냥 지나가는 흔한 백엔드개발자423 느낌 입니다
우분투 데스크탑 개발 환경을 선호합니다
최근에는 vscode에 vim 모드 올려서 쓰고 있습니다
개발용 키보드는 역시 해피해킹 프로2 무각입니다
락 밴드에서 드럼을 꽤나 오래 쳤었습니다