4.0 KiB
4.0 KiB
id, title, category, status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, tags, raw_sources, last_reinforced, github_commit
| id | title | category | status | canonical_id | aliases | duplicate_of | source_trust_level | confidence_score | tags | raw_sources | last_reinforced | github_commit | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| P-REINFORCE-WIKI-DEV-BOUNDED-CONTEXT | 바운디드 컨텍스트와 도메인 모델 경계 (Bounded Context) | 10_Wiki/💻 Topics_Dev | verified |
|
A | 1.0 |
|
|
2026-05-02 |
바운디드 컨텍스트와 도메인 모델 경계 (Bounded Context)
1. 개요
바운디드 컨텍스트(Bounded Context)는 도메인 주도 설계(DDD)의 핵심 개념으로, 거대하고 복잡한 비즈니스 도메인을 논리적으로 일관된 작은 하위 시스템으로 분할하는 설계 패턴이다. 각 컨텍스트는 고유한 모델과 유비쿼터스 언어(Ubiquitous Language)가 통용되는 명확한 경계(Boundary)를 가지며, 이를 통해 시스템 내의 용어 충돌을 방지하고 모듈 간의 자율성을 극대화한다.
2. 핵심 메커니즘 및 특징
- 언어의 경계: 동일한 단어라도 컨텍스트에 따라 의미가 달라질 수 있다. 예를 들어, '상품'이라는 단어는 주문 컨텍스트에서는 '판매 대상'이지만, 배송 컨텍스트에서는 '무게와 부피를 가진 화물'로 해석된다. Bounded Context는 이러한 의미적 경계를 명확히 긋는다.
- 모델의 일관성: 하나의 컨텍스트 내부에서는 모델이 모순 없이 일관되게 동작해야 한다. 경계 밖의 모델과는 느슨하게 결합하며, 필요한 데이터는 컨텍스트 매핑(Context Mapping)을 통해 교환한다.
- 팀과 코드의 독립성: Bounded Context는 팀 단위의 조직 구조와도 밀접하게 연관되며(Conway's Law), 각 컨텍스트별로 최적화된 기술 스택과 독립적인 배포 파이프라인을 가질 수 있는 기술적 토대가 된다.
3. 엔지니어링 가치
- 복잡성 제어: 시스템 전체를 한꺼번에 이해하려 하지 않고, 특정 비즈니스 목적을 가진 컨텍스트 단위로 쪼개어 인지 부하를 획기적으로 줄임.
- 마이크로서비스 분할 표준: 모놀리식 시스템을 마이크로서비스로 전환할 때, 기술적인 계층이 아닌 비즈니스 가치 중심의 서비스 경계를 설정하는 가장 강력한 기준 제공.
- 결함 격리 및 유연성: 한 컨텍스트 내부의 모델 변경이 다른 컨텍스트에 영향을 미치지 않도록 방어막(Anti-Corruption Layer 등)을 형성하여 시스템의 지속적인 진화 지원.
4. 트레이드오프 및 주의사항
- 설계 난이도 및 분석 비용: 비즈니스 도메인에 대한 깊은 이해와 도메인 전문가와의 밀접한 협업이 필수적이며, 경계를 잘못 설정할 경우 컨텍스트 간 데이터 중복과 통신 오버헤드만 증가할 위험이 있음.
- 통합의 복잡성: 분리된 컨텍스트 간에 일관성을 유지하기 위해 이벤트 기반 통신이나 공유 커널(Shared Kernel) 등의 정교한 통합 전략 필요.
- 오버엔지니어링 경계: 단순한 도메인에서도 무리하게 컨텍스트를 쪼개는 것은 불필요한 추상화 오버헤드와 운영 비용만 발생시킬 수 있으므로 주의.
5. 지식 연결 (Related)
- Domain_Driven_Design: Bounded Context가 속한 상위 설계 방법론.
- Microservices_Architecture: Bounded Context가 물리적으로 구현된 아키텍처 스타일.
- Ubiquitous_Language: 각 컨텍스트 내부에서 사용하는 공통 언어 체계.
🧪 검증 상태 (Validation)
- 정보 상태: 검증 완료 (Verified)
- 출처 신뢰도: A
- 검토 이유: 대규모 시스템의 비즈니스 복잡성을 관리 가능한 단위로 분해하고, 기술 중심이 아닌 도메인 중심의 견고한 아키텍처를 구축하기 위한 설계 표준 정립.