Files
2nd/10_Wiki/Topics_meeting/Domain-Driven Design (DDD).md
T

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
architecture
ddd
strategic-design
tactical-design
ubiquitous-language
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