---
id: DDD-MASTER-001
category: "10_Wiki/💡 Topics/Software [[Architecture|Architecture]]"
confidence_score: 1.0
tags: [architecture, ddd, strategic-design, tactical-design, ubiquitous-language]
last_reinforced: 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|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|Frontend]]_[[Mastery|Mastery]]/Domain-Driven Design (DDD).md