Both sides previous revisionPrevious revisionNext revision | Previous revision |
domain-driven_design:part_4_strategic_design:14_maintaining_model_integrity [2024/11/07 07:35] – [CUSTOMER/SUPPLIER DEVELOPMENT TEAM] 오타 수정 ledyx | domain-driven_design:part_4_strategic_design:14_maintaining_model_integrity [2024/11/07 08:00] (current) – [OPEN HOST SERVICE] 설명 보충 ledyx |
---|
sharedKernel["SHARED KERNEL"] | sharedKernel["SHARED KERNEL"] |
customerSupplierDevelopmentTeam["CUSTOMER/SUPPLIER DEVELOPMENT TEAM"] | customerSupplierDevelopmentTeam["CUSTOMER/SUPPLIER DEVELOPMENT TEAM"] |
| |
| openHostService["OPEN HOST SERVICE"] |
| publishedLanguage["PUBLISHED LANGUAGE"] |
end | end |
| |
| |
end | end |
| |
openHostService["OPEN HOST SERVICE"] | |
publishedLanguage["PUBLISHED LANGUAGE"] | |
end | end |
| |
contextMap --"일방적으로 겹치는 방식으로 활용"--> conformist | contextMap --"일방적으로 겹치는 방식으로 활용"--> conformist |
| |
contextMap --"다수의 클라이언트를 지원하는 데 활용"--> openHostService | contextMap --"다수의 클라이언트를 지원하는 데 활용.<br>하류 컨텍스트의 기능을 외부에 Service로 공개하여 상류 컨텍스트가 접근"--> openHostService |
openHostService --"공식화 수단으로 사용"--> publishedLanguage | openHostService --"공식화 수단으로 사용"--> publishedLanguage |
| |
* 상류 팀에서 제공하는 기능의 사용을 전적으로 포기 → **SEPARATE WAYS** | * 상류 팀에서 제공하는 기능의 사용을 전적으로 포기 → **SEPARATE WAYS** |
* 상류 소프트웨어를 사용하는 데서 얻는 가치가 너무 커서(또는 팀에 변경할 권한이 없는 정치적인 결정으로) 의존관계를 유지해야 할 때가 있다. \\ 이 경우 두 가지 길이 있다. \\ __선택은 상류팀이 제작한 소프트웨어 소프트웨어 설계의 품질과 스타일에 달려 있다.__ (캡슐화, 추상화, 패러다임등) | * 상류 소프트웨어를 사용하는 데서 얻는 가치가 너무 커서(또는 팀에 변경할 권한이 없는 정치적인 결정으로) 의존관계를 유지해야 할 때가 있다. \\ 이 경우 두 가지 길이 있다. \\ __선택은 상류팀이 제작한 소프트웨어 소프트웨어 설계의 품질과 스타일에 달려 있다.__ (캡슐화, 추상화, 패러다임등) |
* (수용이 어려운 경우) 자체적인 모델을 만들고 복잡해질 가능성이 있는 번역 계층을 개발하고 유지보수할 책임을 전부 맡아야 한다. → **ANTICORRUPTION LAYER** | * (수용이 어려운 경우) 자체적인 모델을 만들고 복잡해질 가능성이 있는 **번역 계층**을 개발하고 유지보수할 책임을 전부 맡아야 한다. → **ANTICORRUPTION LAYER** |
* (수용이 가능한 경우) 독립적인 모델을 포기하는 것이 최선. → **CONFORMIST** | * (수용이 가능한 경우) 독립적인 모델을 포기하는 것이 최선. 상위 팀 모델을 따른다. → **CONFORMIST** |
| |
<flow> | <flow> |
== OPEN HOST SERVICE == | == OPEN HOST SERVICE == |
| |
각 하위 시스템에 대한 번역기가 많은 경우 사용하는 패턴 | 각 하위 시스템에 대한 번역기가 많은 경우 사용하는 패턴. |
| |
| 여러 종류의 Downstream Bounded Context를 고려하여 설계되는 Upstream Bounded Context. |
| |
| 하류 컨텍스트의 기능을 외부에 Service로 공개하여 상류 컨텍스트가 접근. |
| |
| 예를 들어, 상류 Context "네이버 검색"에서 하류 Context인 블로그, 카페, 웹페이지 컨텍스트의 기능을 이용할 것이다. 이 때, 하류 Context N개 만큼 상류 Context에 맞춰 번역 레이어가 필요할 것이고, 유사한 코드가 반복될 것이다. 이를 외부 서브시스템을 서비스의 제공자로 바라보는 관점으로, 외부 서브시스템을 서비스로 감싼다. |
| |
<note important> | <note important> |