2.6 KiB
2.6 KiB
id, category, confidence_score, tags, last_reinforced
| id | category | confidence_score | tags | last_reinforced | |||||
|---|---|---|---|---|---|---|---|---|---|
| DDD-MASTER-001 | 10_Wiki/💡 Topics/Software Architecture | 1.0 |
|
2026-04-26 |
Domain-Driven Design (DDD, 도메인 주도 설계)
📌 한 줄 통찰 (The Karpathy Summary)
"복잡한 비즈니스 로직을 소프트웨어의 심장으로 만들어라" — 기술적 복잡성보다 비즈니스 도메인의 복잡성을 우선시하며, 개발자와 전문가가 동일한 언어(Ubiquitous Language)로 소통하며 설계하는 방법론.
📖 구조화된 지식 (Synthesized Content)
- 추출된 패턴: 거대한 시스템을 독립적인 의미를 가진 '바운디드 컨텍스트(Bounded Context)'로 나누고, 그 내부를 핵심 도메인 모델 중심으로 구축하는 아키텍처 패턴.
- 전략적 설계 (Strategic Design):
- Ubiquitous Language: 개발자, 기획자, 도메인 전문가가 모두 사용하는 공통 언어 정의.
- Bounded Context: 특정 모델이 적용되는 논리적인 경계 설정. 컨텍스트 간의 관계는 Context Map으로 정의.
- Core Domain: 비즈니스의 가장 핵심적인 가치를 창출하는 영역에 자원 집중.
- 전술적 설계 (Tactical Design):
- Entity & Value Object: 식별자 기반의 객체와 속성 기반의 값 객체 구분.
- Aggregate: 데이터 변경의 단위로 묶인 객체들의 집합. Root 엔티티를 통해서만 접근.
- Repository: 도메인 객체의 생명주기를 관리하고 저장소 추상화 제공.
- Domain Service: 특정 엔티티에 속하기 어려운 비즈니스 로직 처리.
⚠️ 모순 및 업데이트 (Contradictions & RL Update)
- 과거 데이터와의 충돌: 과거의 데이터베이스 중심 설계(ERD 중심)에서 행위와 도메인 로직 중심의 설계로 전환.
- 정책 변화: Antigravity 프로젝트는 '지식 관리', '게임 엔진', '데이터 수집'을 각각의 Bounded Context로 분리하고, 컨텍스트 간 통신은 메시지 큐를 통한 비동기 방식을 지향함.
🔗 지식 연결 (Graph)
- Parent: 10_Wiki/💡 Topics/Software Architecture
- Related: Bounded-Context, Microservices, Clean-Architecture, Event-Sourcing
- Merged Sources:
- 10_Wiki/Topics/AI/Domain-Driven Design (DDD) in TypeScript.md
- 10_Wiki/Topics/AI/Domain-Driven Design (DDD) Type Safety.md
- 10_Wiki/Topics/AI/도메인 주도 설계 (Domain-Driven Design DDD).md
- 10_Wiki/Topics/Frontend_Mastery/Domain-Driven Design (DDD).md