--- id: P-REINFORCE-AUTO-B7F6A8 category: "[[10_Wiki/πŸ’‘ Topics/AI]]" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - 도메인 주도 섀계 (Domain-Driven Design DDD)" --- # [[도메인 주도 섀계 (Domain-Driven Design DDD)]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > 도메인 주도 섀계(DDD)λŠ” λΉ„μ¦ˆλ‹ˆμŠ€ 도메인에 λŒ€ν•œ κΉŠμ€ 이해λ₯Ό μ€‘μ‹¬μœΌλ‘œ μ†Œν”„νŠΈμ›¨μ–΄ 개발 ν”„λ‘œμ„ΈμŠ€λ₯Ό κ΅¬μ„±ν•˜λŠ” 섀계 μ ‘κ·Ό λ°©μ‹μž…λ‹ˆλ‹€ [1]. 기술 νŒ€κ³Ό 도메인 μ „λ¬Έκ°€ κ°„μ˜ κΈ΄λ°€ν•œ ν˜‘λ ₯을 λ°”νƒ•μœΌλ‘œ ν˜„μ‹€ μ„Έκ³„μ˜ λΉ„μ¦ˆλ‹ˆμŠ€ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ •ν™•ν•˜κ²Œ λ°˜μ˜ν•˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄ λͺ¨λΈμ„ μƒμ„±ν•˜λŠ” 것을 λͺ©ν‘œλ‘œ ν•©λ‹ˆλ‹€ [1]. 이λ₯Ό 톡해 μ‹œμŠ€ν…œμ˜ λ³΅μž‘μ„±μ„ ν•΄κ²°ν•˜κ³  κ°œλ°œμžμ™€ λΉ„μ¦ˆλ‹ˆμŠ€ μ΄ν•΄κ΄€κ³„μž κ°„μ˜ μ˜μ‚¬μ†Œν†΅ 격차λ₯Ό ν•΄μ†Œν•˜μ—¬, 결과적으둜 μ†Œν”„νŠΈμ›¨μ–΄κ°€ μ˜¬λ°”λ₯Έ 문제λ₯Ό ν•΄κ²°ν•  수 μžˆλ„λ‘ 보μž₯ν•©λ‹ˆλ‹€ [1]. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) - **μœ λΉ„μΏΌν„°μŠ€ μ–Έμ–΄(Ubiquitous Language)의 확립:** DDD의 핡심 λͺ©ν‘œ 쀑 ν•˜λ‚˜λŠ” ν”„λ‘œμ νŠΈμ— μ°Έμ—¬ν•˜λŠ” λͺ¨λ“  μ‚¬λžŒ(개발자 및 도메인 μ „λ¬Έκ°€ λ“±)이 κ³΅μœ ν•˜λŠ” 곡톡 μ–΄νœ˜ 사전인 'μœ λΉ„μΏΌν„°μŠ€ μ–Έμ–΄'λ₯Ό λ§Œλ“œλŠ” κ²ƒμž…λ‹ˆλ‹€ [1, 2]. 이 μ–Έμ–΄λŠ” 일상적인 λŒ€ν™”, λ¬Έμ„œν™”λŠ” λ¬Όλ‘  μ‹€μ œ μ½”λ“œ μžμ²΄μ—μ„œλ„ λ™μΌν•˜κ²Œ μ‚¬μš©λ˜μ–΄μ•Ό ν•˜λ©°, 이λ₯Ό 톡해 μš”κ΅¬μ‚¬ν•­μ— λŒ€ν•œ μ˜€ν•΄λ₯Ό λ°©μ§€ν•˜κ³  도메인 λͺ¨λΈμ„ λͺ…ν™•νžˆ ν•©λ‹ˆλ‹€ [1, 2]. - **μ œν•œλœ μ»¨ν…μŠ€νŠΈ(Bounded Contexts)λ₯Ό ν†΅ν•œ λ³΅μž‘μ„± 관리:** 크고 λ³΅μž‘ν•œ 도메인은 'μ£Όλ¬Έ 관리'λ‚˜ '고객 지원'κ³Ό 같이 더 μž‘κ³  κ΄€λ¦¬ν•˜κΈ° μ‰¬μš΄ ν•˜μœ„ 도메인인 'μ œν•œλœ μ»¨ν…μŠ€νŠΈ'둜 λΆ„ν• λ©λ‹ˆλ‹€ [3]. 각 μ»¨ν…μŠ€νŠΈλŠ” κ³ μœ ν•œ λͺ¨λΈκ³Ό μœ λΉ„μΏΌν„°μŠ€ μ–Έμ–΄λ₯Ό μœ μ§€ν•˜μ—¬ λͺ¨λΈμ˜ μˆœμˆ˜μ„±μ„ 보μž₯ν•˜κ³ , 각기 λ‹€λ₯Έ μ±…μž„ μ˜μ—­ κ°„μ˜ λͺ…ν™•ν•œ 경계λ₯Ό μ •μ˜ν•˜μ—¬ 도메인 λ‘œμ§μ„ μΊ‘μŠν™”ν•©λ‹ˆλ‹€ [3-5]. - **μ „λž΅μ  λͺ¨λΈλ§ ꡬ성 μš”μ†Œ:** - **μ• κ·Έλ¦¬κ²Œμž‡(Aggregates):** 단일 λ‹¨μœ„λ‘œ μ·¨κΈ‰ν•  수 μžˆλŠ” 도메인 κ°μ²΄λ“€μ˜ ν΄λŸ¬μŠ€ν„°μž…λ‹ˆλ‹€(예: `OrderLineItem` 객체λ₯Ό ν¬ν•¨ν•˜λŠ” `Order`). μ• κ·Έλ¦¬κ²Œμž‡μ˜ λ£¨νŠΈλŠ” 전체 ν΄λŸ¬μŠ€ν„°μ˜ 일관성을 보μž₯ν•˜λ©° νŠΈλžœμž­μ…˜ 관리λ₯Ό λ‹¨μˆœν™”ν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€ [3]. - **μ—”ν‹°ν‹°(Entities)와 κ°’ 객체(Value Objects):** κ³ μœ ν•œ 정체성(Identity)을 λ°”νƒ•μœΌλ‘œ κ΅¬λ³„λ˜λŠ” 객체(예: `Customer` μ—”ν‹°ν‹°)와, 고유 μ‹λ³„μž 없이 였직 μ†μ„±μœΌλ‘œλ§Œ μ •μ˜λ˜λŠ” 객체(예: `ShippingAddress` κ°’ 객체)λ₯Ό λͺ…ν™•νžˆ κ΅¬λΆ„ν•˜μ—¬ μ„€κ³„ν•©λ‹ˆλ‹€ [3]. - **도메인 둜직의 격리 및 이벀트 μŠ€ν† λ°(Event Storming):** 핡심 λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ€ λ°μ΄ν„°λ² μ΄μŠ€λ‚˜ UI ν”„λ ˆμž„μ›Œν¬μ™€ 같은 μ™ΈλΆ€ μΈν”„λΌμŠ€νŠΈλŸ­μ²˜ λ¬Έμ œμ™€ μ² μ €νžˆ λΆ„λ¦¬λ˜μ–΄μ•Ό ν•˜λ©°, 이λ₯Ό 톡해 κΉ”λ”ν•˜κ³  ν…ŒμŠ€νŠΈ 및 μœ μ§€λ³΄μˆ˜κ°€ μ‰¬μš΄ 도메인 λͺ¨λΈμ„ 생성할 수 μžˆμŠ΅λ‹ˆλ‹€ [2]. λ˜ν•œ λΉ„μ¦ˆλ‹ˆμŠ€ 도메인을 λΉ λ₯΄κ²Œ νƒμƒ‰ν•˜κ³  도메인 이벀트, λͺ…λ Ή, μ• κ·Έλ¦¬κ²Œμž‡μ„ μ‹λ³„ν•˜κΈ° μœ„ν•΄ '이벀트 μŠ€ν† λ°(Event Storming)'κ³Ό 같은 ν˜‘μ—… μ›Œν¬μƒ΅μ„ 적극적으둜 ν™œμš©ν•˜λŠ” 것이 ꢌμž₯λ©λ‹ˆλ‹€ [2]. - **λ„μž… μ‹œ νŠΉμ§• 및 μ ν•©ν•œ ν™˜κ²½:** DDDλŠ” κΉŠμ€ 도메인 λͺ¨λΈλ§κ³Ό μ΄ν•΄κ΄€κ³„μžμ˜ 지속적인 ν˜‘μ—…μ΄ ν•„μˆ˜μ μ΄λ―€λ‘œ 초기 κ΅¬ν˜„ λ³΅μž‘λ„μ™€ λ¦¬μ†ŒμŠ€ μš”κ΅¬ 사항(뢄석 μ‹œκ°„, 도메인 μ „λ¬Έκ°€ μ°Έμ—¬ λ“±)이 μƒλŒ€μ μœΌλ‘œ 높은 νŽΈμž…λ‹ˆλ‹€ [6]. λ”°λΌμ„œ λ‹¨μˆœν•œ μ‹œμŠ€ν…œλ³΄λ‹€λŠ” 금육, 의료, μ΄μ»€λ¨ΈμŠ€μ™€ 같이 λΉ„μ¦ˆλ‹ˆμŠ€ 도메인이 맀우 λ³΅μž‘ν•œ μ—”ν„°ν”„λΌμ΄μ¦ˆ μ‹œμŠ€ν…œ ꡬ좕에 κ°€μž₯ 이상적인 μ•„ν‚€ν…μ²˜ 베슀트 ν”„λž™ν‹°μŠ€μž…λ‹ˆλ‹€ [6]. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & RL Update) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** μžλ™ν™” 엔진에 μ˜ν•΄ λ§€ν•‘λœ μ§€μ‹μœΌλ‘œ, μΆ”ν›„ μ •λ°€ 검증 ν•„μš”. - **μ •μ±… λ³€ν™”:** AI λΆ„μ•Όμ˜ μžλ™ μžμ‚°ν™” μˆ˜ν–‰. ## πŸ”— 지식 μ—°κ²° (Graph) - **Related Topics:** [[μœ λΉ„μΏΌν„°μŠ€ μ–Έμ–΄(Ubiquitous Language)]], [[μ œν•œλœ μ»¨ν…μŠ€νŠΈ(Bounded Contexts)]], [[μ• κ·Έλ¦¬κ²Œμž‡(Aggregates)]], [[κ΄€μ‹¬μ‚¬μ˜ 뢄리(Separation of Concerns)]] - **Projects/Contexts:** [[λ³΅μž‘ν•œ λΉ„μ¦ˆλ‹ˆμŠ€ 도메인(금육, 의료, 이컀머슀 λ“±)을 λ‹€λ£¨λŠ” λŒ€κ·œλͺ¨ μ‹œμŠ€ν…œ 개발 ν”„λ‘œμ νŠΈ]] - **Contradictions/Notes:** μ†ŒμŠ€ λ‚΄μ—μ„œ μƒμΆ©ν•˜λŠ” μ£Όμž₯은 λ°œκ²¬λ˜μ§€ μ•ŠμœΌλ‚˜, DDDλŠ” λΉ„μ¦ˆλ‹ˆμŠ€ κ΅¬μ‘°μ™€μ˜ κ°•λ ₯ν•œ μΌμΉ˜μ™€ λͺ…ν™•ν•œ 도메인 λͺ¨λΈμ„ μ œκ³΅ν•˜λŠ” 큰 μž₯점이 μžˆλŠ” 반면, λ„μž… μ‹œ 도메인 μ „λ¬Έκ°€μ™€μ˜ 심도 μžˆλŠ” ν˜‘μ—… λͺ¨λΈλ§μ΄ ν•„μš”ν•˜μ—¬ μ€‘κ°„μ—μ„œ λ†’μŒ(Medium-High) μˆ˜μ€€μ˜ λ³΅μž‘μ„±κ³Ό λ¦¬μ†ŒμŠ€κ°€ μš”κ΅¬λœλ‹€λŠ” 점이 μ£Όμ˜μ‚¬ν•­μœΌλ‘œ μ§€μ λ©λ‹ˆλ‹€ [6]. --- *Last updated: 2026-04-18* - Raw Source: [[00_Raw/2026-04-20/도메인 주도 섀계 (Domain-Driven Design, DDD).md]] ---