1. 컨택스트 맵이 필수적인 이유


* 엔터프라이즈 급의 커다란 시스템의 인터페이스를 진흙 투성이라고 한다. 가지고 있는쪽 요청하는 쪽 모두 진흙투성이가 된다.

* 또는 순응주의자 관계가 된다. 미처 관계가 있는지 조차 모르고 고려의 대상이 되지도 않는다.


- 컨택스트 맵은 해결책 공간의 관점을 제공하기 위한 목적에 초첨을 둔다.

- 컨택스트 맵을 그리면 관계된 모든 다른 프로젝트들과의 관계를 신중히 생각해보도록 강요받게 된다.



1.1. 컨텍스트 맵 그리기

- 미래를 상상해서 그리지 말고 현재를 그려라. 업데이트 하면 된다.

- 다이어그램에 너무 많은 세부내용을 추가하는 일은 도움이 안된다.

- 대화를 통해 전략적 통찰이 드러나는 순간 컨텍스트 맵에 추가하자.

- 팀전체가 잘 볼수 있도록 벽에 붙여 두어라

* 컨텍스트 맵은 엔터프라이즈 아키텍처나 시스템 위상(Topology)가 아니다.


1.2 프로젝트와 조직 관계

조직과 통합 패턴

 1. 파트너쉽(Partnership): 두 가지 컨텍스트 안의 팀이 성공/실패를 함께한다면 협업 관계. 상호 의존적.

 2. 공유 커널(Shared Kernel): 도메인 모델에서 팀이 공유하기로 도의한 부분집합의 일부. 커널은 작게 유지.

 3. 고객-공급자(Customer-Supplier Development): 두팀이 업스트림, 다운 스트림 관계. 업스트림은 다운스트림 요구 수용. 일정 이행.

 4. 순응주의자(Conformist): 맹목적으로 업스트림의 모델을 준수한다.

 5. 부폐 방지 계층(Anti-corruption Layer): 변환 계층을 두어 양방향의 변화에 영향이 없도록 한다.

 6. 오픈 호스트 서비스(Open Host Service): 서브시스템에 접근할 수 있도록 해주는 서비스 프로토콜 정의

 7. 발행된 언어(Published Language): 잘 문서화된 공유 언어를 사용해 변환을 수행하자.

 8. 분리된 방법(Separate Ways): 요구사항을 정할때는 무자비하게.개발자가 작은 범위내에서 단순하고 전무화된 솔루션을 찾도록 해주자.

 9. 큰 진흙공(Big ball of Mud): 어지러운 상황 전체를 나타내는 경계.


'디지털 양피지 > Domain Driven Design' 카테고리의 다른 글

2. 도메인, 서브도메인, 바운디드 컨텍스트  (0) 2017.12.01
1. DDD를 시작하며  (0) 2017.11.29
DDD의 큰 그림  (0) 2017.11.29
Posted by 빨간 양말