솔루션은 도메인의 필요한 정보만 캡처하면 됩니다.
바운디드 컨텍스트는 구현에서 일종의 서브 시스템입니다. 각 바운디드 컨텍스트는 자체적으로 미니 도메인 모델입니다.
서브시스템보다 바운디드 컨텍스트라는 용어가 적합한 이유는, 시스템 간의 경계를 인식하고, 해당 경계 내에서의 컨텍스트를 인식하는게 중요하기 때문입니다.
왜 바운디드(경계)라는 용어를 사용하나요?
현실 세계에서 도메인에는 모호한 경계가 있지만 소프트웨어 세계에서는
개별 하위 시스템 간의 결합을 줄여 독립적으로 발전할 수 있기를 원합니다. 즉 실제 세계의 교집합과 같은 부분을 없앱니다.
해당 교집합 부분을 API 기반 커뮤니케이션 등으로 변경할 수 있습니다.
또한 실제 세계의 도메인은 더 많은 도메인으로 쪼개지거나 합해질 수 있습니다.
구성 요소는 별도의 DLL, 독립 실행형 서비스 또는 단순한 네임스페이스로 구현될 수 있습니다.
컨텍스트를 올바르게 나누기
- 도메인 전문가의 말을 들어라.
- 그들이 비슷한 용어를 사용하고 비슷한 문제를 다루면 같은 서브도메인에서 일할 가능성이 큽니다.
- 존재하는 팀, 부서에 집중하라
- 조직 구조는 도메인과 서브도메인에 대한 강력한 힌트입니다.
- 바운디드 컨텍스트의 경계에 집중하라
- 너무 크거나 모호한 경계를 피하세요
- 좋은 울타리가 좋은 이웃을 만든다.
- 자율성을 위해 디자인하라
- 경계 컨텍스트를 분리하여 독립적이고, 자율적으로 만들어라
- 마찰 없는 비즈니스 워크플로를 위한 디자인.
- 워크플로가 경계가 지정된 여러 컨텍스트와 상호 작용하고 이에 의해 자주 차단되거나 지연되는 경우 컨텍스트를 리팩토링하여 워크플로를 원활하게 만드는 것을 고려하십시오. 즉, 어떤 종류의 "순수한" 디자인보다 항상 비즈니스 및 고객 가치에 중점을 둡니다.
- 항상 변화의 가능성을 염두에 두고 설계해야 합니다.
Creating Context Maps - 컨텍스트 매핑
두 컨텍스트는 교환하는 메시지의 공유 format에 동의해야 합니다.
일반적으로 업스트림 컨텍스트는 format에 더 많은 영향을 미치지만 때로는 다운스트림 컨텍스트가 유연하지 않습니다
(예: 다운스트림이 고치기 어려운 레거시 시스템 작업).
그리고 업스트림 컨텍스트는 이에 적응해야 하며, 그렇지 않으면 일종의 번역기 구성 요소가 중개자로서 필요합니다.
Focusing on the Most Important Bounded Contexts
예를 들어 Widgets Inc(예시 회사)의 경우 비즈니스 이점이 탁월한 고객 서비스이기 때문에 주문 접수 및 배송 도메인이 핵심일 수 있습니다.
청구 도메인은 지원 도메인(supportive domains)으로 간주되고
배송 도메인은 일반적인 도메인(generic domains.)으로 간주될 수 있으므로 안전하게 아웃소싱할 수 있습니다
'BackEnd' 카테고리의 다른 글
도메인 전문가와 인터뷰. 서브 도메인의 입출력 (0) | 2022.03.17 |
---|---|
유비쿼터스 랭귀지 만들기 (0) | 2022.03.17 |
도메인을 서브도메인으로 나누기 (0) | 2022.03.17 |
비즈니스 이벤트(도메인 이벤트)를 통해 도메인 이해하기 (0) | 2022.03.17 |
공유 모델의 중요성(The Importance of a Shared Model) (0) | 2022.03.17 |