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 |