반응형
고객 / 공급자 관계를 갖는 BOUNDED CONTEXT
- 두 BOUNDED CONTEXT간 관계 중 가장 흔한 관계는 한쪽에서 API를 제공하고 다른 한쪽에서는 그 API를 호출하는 관계이다.
- 이 관계에서 API를 사용하는 BOUNDED CONTEXT는 API를 제공하는 BOUNDED CONTEXT에 의존하게 된다.
공개 호스트 서비스(OPEN HOST SERVICE)
- 공개 호스트 서비스의 대표적인 예는 검색이다.
- 블로그, 카페, 게시판과 같은 서비스를 제공하는 포탈은 각 서비스 별로 검색 기능을 구현하기 보다 검색을 위한 전용 시스템을 구축하고 검색 시스템과 각 서비스를 통합한다.
- 이때 상류 컴포넌트는 검색 시스템이고, 하류 컴포넌트는 블로그, 카페, 게시판이 된다.
- 상류 컴포넌트의 서비스는 상류 BOUNDED CONTEXT의 도메인 모델을 따르기 때문에 하류 컴포넌트 모델에 영향을 주지 않도록 보호해 주는 완충 지대를 구축해야 한다.
- 이 완충 지대를 안티코럽션 계층(Anticoruption Layer)이라고 부른다.
공유 커널(SHARED KERNEL)
- 두 BOUNDED CONTEXT가 같은 모델을 공유하는 경우도 있다.
- 같은 서비스를 구축하는 두 팀에서 해당 서비스 모델을 공유함으로써 공통된 개발을 막을 수 있다.
- 이렇게 두 팀이 공유하는 모델을 공유 커널(SHARED KERNEL)이라고 부른다.
- 공통된 개발을 줄일수 있다는 장점이 있지만, 임의로 모델을 변경해서는 안되며 두 팀이 밀접한 관계를 유지해야한다.
- 두 팀이 밀접한 관계를 형성할 수 없다면 공유 커널을 사용할 때의 장점보다 공유 커널로 인해 개발이 지연되고 정체되는 문제가 더 커지게 된다.
독립 방식 관계(SEPARATE WAY)
- 독립 방식 관계는 서로 통합하지 않는 방식이다.
- 두 BOUNDED CONTEXT 간에 통합을 하지 않으므로 서로 독립적으로 모델을 발전시킨다.
- 독립 방식에서 두 BOUNDED CONTEXT 간에 통합은 사용자가 직접 수동으로 이루어진다.
- 수동으로 통합하는 방식이 나쁜 것은 아니지만 규모가 커질수록 한계가 있다.
컨텍스트 맵(CONTEXT MAP)
- 컨텍스트 맵은 BOUNDED CONTEXT 간의 관계를 그림으로 표시한 것이다.
- BOUNDED CONTEXT 영역에 주요 애그리거트를 함께 표시하면 모델에 대한 관계가 더 명확히 드러난다.
- 오픈 호스트 서비스(OHS), 안티코럽션 계층(ACL)을 표시하거나 하위 도메인이나 조직을 표시하면 도메인을 포함한 전체 관계를 이해하는 데 도움이 된다.
- 컨텍스트 맵의 규칙은 따로 없고 각 컨텍스트의 관계를 이해하는것에 초점을 둔다.
- 컨텍스트 맵으로 하위 도메인과 일치하지 않는 BOUNDED CONTEXT를 찾아 도메인에 맞게 조절하고 사업의 핵심 도메인을 위해 조직 역량을 어떤 BOUNDED CONTEXT에 집중할지 파악하는데 도움을 준다.
반응형
'DDD' 카테고리의 다른 글
엔티티(Entity)와 밸류(Value)란? (0) | 2021.09.14 |
---|---|
BOUNDED CONTEXT 간 통합 (0) | 2021.09.14 |
좋은 의존성을 구성하라! (0) | 2021.09.14 |
애그리거트(Aggregate)란? (0) | 2021.09.13 |
도메인 모델과 BOUNDED CONTEXT란? (0) | 2021.09.13 |