--- id: P-REINFORCE-AUTO-ADBB0E category: "[[10_Wiki/πŸ’‘ Topics/Design & Experience]]" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - 도메인 주도 섀계 (DDD)" --- # [[도메인 주도 섀계 (DDD)]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > 도메인 주도 섀계(DDD)λŠ” λΉ„μ¦ˆλ‹ˆμŠ€ 도메인에 λŒ€ν•œ κΉŠμ€ 이해λ₯Ό μ€‘μ‹¬μœΌλ‘œ μ†Œν”„νŠΈμ›¨μ–΄ 개발 ν”„λ‘œμ„ΈμŠ€λ₯Ό μ§„ν–‰ν•˜λŠ” 섀계 μ ‘κ·Όλ²•μž…λ‹ˆλ‹€ [1]. 이 방식은 핡심 λΉ„μ¦ˆλ‹ˆμŠ€ 둜직(λ‡Œ)을 λ°μ΄ν„°λ² μ΄μŠ€λ‚˜ UI ν”„λ ˆμž„μ›Œν¬μ™€ 같은 μΈν”„λΌμŠ€νŠΈλŸ­μ²˜ 관심사(νŒ”λ‹€λ¦¬)λ‘œλΆ€ν„° μ² μ €νžˆ κ²©λ¦¬ν•˜μ—¬ κΉ¨λ—ν•˜κ³  ν…ŒμŠ€νŠΈ κ°€λŠ₯ν•œ 도메인 λͺ¨λΈμ„ κ΅¬μΆ•ν•˜λŠ” 것을 λͺ©ν‘œλ‘œ ν•©λ‹ˆλ‹€ [2]. 결과적으둜 DDDλŠ” 전톡적인 기술 μ€‘μ‹¬μ˜ 계측화λ₯Ό λ„˜μ–΄ 'λΉ„μ¦ˆλ‹ˆμŠ€ μ—­λŸ‰ 쀑심'의 수직적 λΆ„λ¦¬λ‘œ κ΄€μ‹¬μ‚¬μ˜ 뢄리(SoC) μ›μΉ™μ˜ 지평을 크게 λ„“ν˜”μŠ΅λ‹ˆλ‹€ [3]. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) - **도메인 둜직의 격리 (λ‡Œμ™€ νŒ”λ‹€λ¦¬μ˜ 뢄리):** DDDλŠ” μ‹œμŠ€ν…œμ˜ 핡심 λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ μΈν”„λΌμŠ€νŠΈλŸ­μ²˜λ‚˜ μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€(UI) ν”„λ ˆμž„μ›Œν¬μ™€ 같은 μ™ΈλΆ€ μš”μ†Œμ™€ 뢄리할 것을 κ°•μ‘°ν•©λ‹ˆλ‹€ [2]. μ΄λŠ” μ‹œμŠ€ν…œμ˜ 본질적인 μ •μ±…(λ‡Œ)κ³Ό μ™ΈλΆ€ 세계λ₯Ό κ΅¬ν˜„ν•˜λŠ” μ„ΈλΆ€ 사항(νŒ”λ‹€λ¦¬)을 κ²©λ¦¬ν•˜λŠ” κ΄€μ‹¬μ‚¬μ˜ 뢄리 원칙을 μ§μ ‘μ μœΌλ‘œ μ‹€μ²œν•˜λŠ” 것이며, 이λ₯Ό 톡해 μˆœμˆ˜ν•˜κ³  μœ μ§€λ³΄μˆ˜ν•˜κΈ° μ‰¬μš΄ 도메인 λͺ¨λΈμ„ 생성할 수 μžˆμŠ΅λ‹ˆλ‹€ [2]. - **λ°”μš΄λ””λ“œ μ»¨ν…μŠ€νŠΈ (Bounded Contexts)λ₯Ό ν†΅ν•œ 수직적 뢄리:** λŒ€κ·œλͺ¨μ˜ λ³΅μž‘ν•œ 도메인은 κ΄€λ¦¬ν•˜κΈ° μ‰¬μš΄ ν•˜μœ„ 도메인인 'λ°”μš΄λ””λ“œ μ»¨ν…μŠ€νŠΈ' λ‹¨μœ„λ‘œ μͺΌκ°œμ§‘λ‹ˆλ‹€ [4]. 각 μ»¨ν…μŠ€νŠΈλŠ” 독립적인 λͺ¨λΈκ³Ό μ–Έμ–΄λ₯Ό κ°€μ§€λ©°, μ΄λŠ” κΈ°λŠ₯듀을 λΉ„μ¦ˆλ‹ˆμŠ€ μ˜μ—­μ— 따라 독립적인 λͺ¨λ“ˆλ‘œ 수직 λΆ„λ¦¬ν•˜μ—¬ ν•œ λͺ¨λ“ˆμ˜ 변경이 λ‹€λ₯Έ λͺ¨λ“ˆμ— λ―ΈμΉ˜λŠ” 영ν–₯을 μ°¨λ‹¨ν•©λ‹ˆλ‹€ [3]. - **μœ λΉ„μΏΌν„°μŠ€ μ–Έμ–΄ (Ubiquitous Language):** κ°œλ°œνŒ€κ³Ό 도메인 μ „λ¬Έκ°€(λΉ„μ¦ˆλ‹ˆμŠ€ μ΄ν•΄κ΄€κ³„μž) κ°„μ˜ μ˜μ‚¬μ†Œν†΅ 간극을 λ©”μš°κΈ° μœ„ν•΄, ν”„λ‘œμ νŠΈ μ „λ°˜(λŒ€ν™”, λ¬Έμ„œ, μ‹€μ œ μ½”λ“œ)μ—μ„œ κ³΅ν†΅μœΌλ‘œ μ‚¬μš©λ˜λŠ” 'μœ λΉ„μΏΌν„°μŠ€ μ–Έμ–΄'λ₯Ό μ •μ˜ν•˜κ³  μ‚¬μš©ν•©λ‹ˆλ‹€ [1, 2]. - **μ£Όμš” 도메인 λͺ¨λΈλ§ νŒ¨ν„΄:** λΉ„μ¦ˆλ‹ˆμŠ€ 도메인을 λͺ¨λΈλ§ν•˜κΈ° μœ„ν•΄ λšœλ ·ν•œ 정체성을 κ°€μ§€λŠ” 'μ—”ν‹°ν‹°(Entities)', μ†μ„±μœΌλ‘œλ§Œ μ •μ˜λ˜λŠ” 'κ°’ 객체(Value Objects)', 그리고 λ°μ΄ν„°μ˜ 일관성을 μœ μ§€ν•˜κΈ° μœ„ν•΄ 단일 λ‹¨μœ„λ‘œ μ·¨κΈ‰λ˜λŠ” 도메인 κ°μ²΄λ“€μ˜ ꡰ집인 'μ• κ·Έλ¦¬κ±°νŠΈ(Aggregates)' λ“±μ˜ νŒ¨ν„΄μ„ μ‚¬μš©ν•©λ‹ˆλ‹€ [4]. - **λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ μ•„ν‚€ν…μ²˜(MSA)의 논리적 기반:** DDD의 λ°”μš΄λ””λ“œ μ»¨ν…μŠ€νŠΈ κ°œλ…μ€ λΉ„μ¦ˆλ‹ˆμŠ€ μ—­λŸ‰ μ€‘μ‹¬μ˜ 뢄리λ₯Ό κ°€λŠ₯ν•˜κ²Œ ν•¨μœΌλ‘œμ¨, μ˜€λŠ˜λ‚ μ˜ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ μ•„ν‚€ν…μ²˜(MSA)λ₯Ό κ΅¬μΆ•ν•˜κ³  λΆ„μ‚° μ‹œμŠ€ν…œμ„ μ„€κ³„ν•˜λŠ” 논리적인 기반이 λ©λ‹ˆλ‹€ [3]. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & RL Update) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** μžλ™ν™” 엔진에 μ˜ν•΄ λ§€ν•‘λœ μ§€μ‹μœΌλ‘œ, μΆ”ν›„ μ •λ°€ 검증 ν•„μš”. - **μ •μ±… λ³€ν™”:** Design & Experience λΆ„μ•Όμ˜ μžλ™ μžμ‚°ν™” μˆ˜ν–‰. ## πŸ”— 지식 μ—°κ²° (Graph) - **Related Topics:** [[λ°”μš΄λ””λ“œ μ»¨ν…μŠ€νŠΈ (Bounded Context)]], [[μœ λΉ„μΏΌν„°μŠ€ μ–Έμ–΄ (Ubiquitous Language)]], [[κ΄€μ‹¬μ‚¬μ˜ 뢄리 (Separation of Concerns)]], [[μ• κ·Έλ¦¬κ±°νŠΈ (Aggregates)]] - **Projects/Contexts:** [[λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ μ•„ν‚€ν…μ²˜ (MSA)]], [[λ³΅μž‘ν•œ λΉ„μ¦ˆλ‹ˆμŠ€ 도메인 (금육, ν—¬μŠ€μΌ€μ–΄, 이컀머슀 λ“±)]] - **Contradictions/Notes:** μ†ŒμŠ€ λ‚΄μš© κ°„μ˜ λͺ¨μˆœμ μ€ λ°œκ²¬λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. λ‹€λ§Œ, 도메인 주도 섀계(DDD)λŠ” λΉ„μ¦ˆλ‹ˆμŠ€μ™€ κ°•ν•˜κ²Œ κ²°ν•©λœ λͺ…ν™•ν•œ λͺ¨λΈμ„ λ„μΆœν•˜λŠ” 데 큰 μž₯점이 μžˆμ§€λ§Œ, 도메인 μ „λ¬Έκ°€μ™€μ˜ κΈ΄λ°€ν•œ ν˜‘μ—…κ³Ό κΉŠμ€ λͺ¨λΈλ§ 뢄석 μ‹œκ°„μ΄ ν•„μš”ν•˜μ—¬ κ΅¬ν˜„ λ³΅μž‘λ„μ™€ λ¦¬μ†ŒμŠ€ μš”κ΅¬λŸ‰μ΄ λ†’λ‹€λŠ” νŠΉμ§•μ΄ μžˆμŠ΅λ‹ˆλ‹€ [5]. --- *Last updated: 2026-04-18* - Raw Source: [[00_Raw/2026-04-20/도메인 주도 섀계 (DDD).md]] ---