Files
2nd/10_Wiki/Topics_GD/Domain-Driven-Design-DDD.md
T

2.2 KiB


id: DDD-001 category: "10_Wiki/💡 Topics/AI" confidence_score: 1.0 tags: [software-Architecture, ddd, domain-driven-design, microservices, strategic-design] last_reinforced: 2026-04-26

Domain-Driven Design (DDD, 도메인 주도 설계)

📌 한 줄 통찰 (The Karpathy Summary)

"기술적 구현보다 비즈니스의 본질(도메인)을 코드의 중심에 두어라" — 복잡한 소프트웨어 프로젝트에서 비즈니스 로직과 기술 인프라를 분리하고, 도메인 전문가와 개발자가 동일한 언어(Ubiquitous Language)를 사용하여 시스템을 설계하는 방법론.

📖 구조화된 지식 (Synthesized Content)

  • 추출된 패턴: 거대한 시스템을 의미 있는 경계(Bounded Context)로 나누고, 각 맥락 안에서 핵심 비즈니스 모델을 정교하게 구축하여 복잡성을 관리하는 전략적 설계 패턴.
  • 핵심 요소:
    • Ubiquitous Language: 기획자와 개발자가 소통하는 공통의 용어 사전.
    • Bounded Context: 모델이 적용되는 논리적인 경계. MSA의 기반이 됨.
    • Entity & Value Object: 식별자가 중요한 객체와 속성값이 중요한 객체의 구분.
    • Aggregate: 데이터 변경의 단위이자 캡슐화 경계.
    • Layered Architecture: 도메인 로직을 표현 레이어나 인프라 레이어로부터 격리.

⚠️ 모순 및 업데이트 (Contradictions & RL Update)

  • 과거 데이터와의 충돌: 데이터베이스 테이블 중심의 설계에서, 비즈니스 행위(Behavior) 중심의 설계로 전환. 초기에는 중복 내용이 여러 파일에 흩어져 있었으나, Antigravity 지식 정비 과정을 통해 통합 마스터 문서로 정립됨.
  • 정책 변화: Antigravity 프로젝트는 에이전트의 스킬과 지식 카테고리를 설계할 때 DDD 원칙을 적용하여, 각 에이전트가 명확한 도메인 경계 내에서 자율성을 갖도록 구성함.

🔗 지식 연결 (Graph)