--- id: P-REINFORCE-AUTO-4DC206 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]. 이 접근법은 λ³΅μž‘ν•œ λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 핡심에 두고, κ°œλ°œνŒ€κ³Ό λΉ„μ¦ˆλ‹ˆμŠ€ μ΄ν•΄κ΄€κ³„μž κ°„μ˜ κΈ΄λ°€ν•œ ν˜‘λ ₯을 톡해 ν˜„μ‹€ μ„Έκ³„μ˜ λΉ„μ¦ˆλ‹ˆμŠ€ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ •ν™•νžˆ λ°˜μ˜ν•˜λŠ” λͺ¨λΈμ„ μƒμ„±ν•©λ‹ˆλ‹€ [1]. 결과적으둜 DDDλŠ” 기술 μ€‘μ‹¬μ˜ λΆ„λ¦¬μ—μ„œ λ²—μ–΄λ‚˜ λΉ„μ¦ˆλ‹ˆμŠ€ μ—­λŸ‰ μ€‘μ‹¬μ˜ 관심사 뢄리λ₯Ό κ°€λŠ₯ν•˜κ²Œ ν•©λ‹ˆλ‹€ [2]. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) * **핡심 원칙 및 λͺ©ν‘œ**: DDD의 μ£Όμš” λͺ©ν‘œλŠ” ν”„λ‘œμ νŠΈμ˜ λͺ¨λ“  μ°Έμ—¬μžκ°€ μ‚¬μš©ν•˜λŠ” 곡톡 μ–΄νœ˜μΈ '보편적 μ–Έμ–΄(Ubiquitous Language)'λ₯Ό κ΅¬μΆ•ν•˜μ—¬ κ°œλ°œμžμ™€ λΉ„μ¦ˆλ‹ˆμŠ€ μ΄ν•΄κ΄€κ³„μž κ°„μ˜ μ˜μ‚¬μ†Œν†΅ 격차λ₯Ό ν•΄μ†Œν•˜κ³  λ³΅μž‘μ„±μ„ κ΄€λ¦¬ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€ [1]. λ˜ν•œ, 핡심 λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ λ°μ΄ν„°λ² μ΄μŠ€λ‚˜ UI ν”„λ ˆμž„μ›Œν¬μ™€ 같은 μ™ΈλΆ€ μΈν”„λΌλ‘œλΆ€ν„° μ² μ €νžˆ λΆ„λ¦¬ν•˜κ³  λ³΄ν˜Έν•˜μ—¬ μœ μ§€λ³΄μˆ˜μ„±κ³Ό ν…ŒμŠ€νŠΈ κ°€λŠ₯성을 λ†’μ΄λŠ” 데 쀑점을 λ‘‘λ‹ˆλ‹€ [3, 4]. * **μ£Όμš” νŒ¨ν„΄ 및 μš”μ†Œ**: * **μ œν•œλœ λ¬Έλ§₯(Bounded Contexts)**: 크고 λ³΅μž‘ν•œ 도메인을 κ΄€λ¦¬ν•˜κΈ° μ‰¬μš΄ ν•˜μœ„ 도메인(예: 'μ£Όλ¬Έ 관리', '고객 지원')으둜 λ‚˜λˆ•λ‹ˆλ‹€. 각 λ¬Έλ§₯은 κ³ μœ ν•œ λͺ¨λΈκ³Ό 보편적 μ–Έμ–΄λ₯Ό κ°€μ§€λ©° [5], μ΄λŠ” λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ μ•„ν‚€ν…μ²˜(MSA)λ₯Ό μœ„ν•œ 논리적 κΈ°λ°˜μ„ μ œκ³΅ν•˜μ—¬ λͺ¨λ“ˆ κ°„μ˜ λΆ€μž‘μš©(Side Effects)을 μ°¨λ‹¨ν•©λ‹ˆλ‹€ [2]. * **μ• κ·Έλ¦¬κ²Œμ΄νŠΈ(Aggregates)**: 단일 λ‹¨μœ„λ‘œ μ·¨κΈ‰ν•  수 μžˆλŠ” 도메인 κ°μ²΄λ“€μ˜ κ΅°μ§‘μž…λ‹ˆλ‹€. μ• κ·Έλ¦¬κ²Œμ΄νŠΈμ˜ 루트(root)λŠ” 전체 κ΅°μ§‘μ˜ 일관성을 보μž₯ν•˜κ³  νŠΈλžœμž­μ…˜ 관리λ₯Ό λ‹¨μˆœν™”ν•©λ‹ˆλ‹€ [5]. * **μ—”ν‹°ν‹°(Entities)와 κ°’ 객체(Value Objects)**: λͺ…ν™•ν•œ 식별성을 μ§€λ‹Œ κ°μ²΄λŠ” 'μ—”ν‹°ν‹°'(예: 고객)둜 μ •μ˜ν•˜κ³ , 고유 식별성 없이 μ†μ„±λ§ŒμœΌλ‘œ μ •μ˜λ˜λŠ” κ°μ²΄λŠ” 'κ°’ 객체'(예: 배솑지 μ£Όμ†Œ)둜 κ΅¬λΆ„ν•˜μ—¬ λͺ¨λΈλ§ν•©λ‹ˆλ‹€ [5]. * **μ‹€μ²œ μ „λž΅**: DDDλ₯Ό 효과적으둜 κ΅¬ν˜„ν•˜κΈ° μœ„ν•΄μ„œλŠ” 도메인 μ „λ¬Έκ°€μ™€μ˜ ν˜‘μ—…μ„ 톡해 곡유 μ–Έμ–΄ 사전을 개발 및 μœ μ§€ν•΄μ•Ό ν•©λ‹ˆλ‹€ [3]. λ˜ν•œ, λΉ„μ¦ˆλ‹ˆμŠ€ 도메인을 νƒμƒ‰ν•˜κ³  도메인 이벀트, λͺ…λ Ή, μ• κ·Έλ¦¬κ²Œμ΄νŠΈλ₯Ό μ‹ μ†ν•˜κ²Œ μ‹λ³„ν•˜κΈ° μœ„ν•΄ '이벀트 μŠ€ν† λ°(Event Storming)'κ³Ό 같은 ν˜‘μ—… μ›Œν¬μˆμ„ ν™œμš©ν•˜λŠ” 것이 ꢌμž₯λ©λ‹ˆλ‹€ [3]. * **적용 ν™˜κ²½ 및 νŠΉμ§•**: 금육, 의료, μ΄μ»€λ¨ΈμŠ€μ™€ 같이 λΉ„μ¦ˆλ‹ˆμŠ€ 도메인이 λ³΅μž‘ν•œ μ‹œμŠ€ν…œμ— μ΄μƒμ μž…λ‹ˆλ‹€ [6]. λΉ„μ¦ˆλ‹ˆμŠ€μ™€μ˜ κ°•λ ₯ν•œ 정렬을 μ œκ³΅ν•˜μ§€λ§Œ, κΉŠμ€ 도메인 λͺ¨λΈλ§κ³Ό 도메인 μ „λ¬Έκ°€μ˜ 뢄석 μ‹œκ°„ 등이 μš”κ΅¬λ˜μ–΄ κ΅¬ν˜„ λ³΅μž‘λ„μ™€ λ¦¬μ†ŒμŠ€ μš”κ΅¬ 사항이 높은 νŽΈμž…λ‹ˆλ‹€ [6]. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & RL Update) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** μžλ™ν™” 엔진에 μ˜ν•΄ λ§€ν•‘λœ μ§€μ‹μœΌλ‘œ, μΆ”ν›„ μ •λ°€ 검증 ν•„μš”. - **μ •μ±… λ³€ν™”:** Design & Experience λΆ„μ•Όμ˜ μžλ™ μžμ‚°ν™” μˆ˜ν–‰. ## πŸ”— 지식 μ—°κ²° (Graph) - **Related Topics:** 보편적 μ–Έμ–΄(Ubiquitous Language), μ œν•œλœ λ¬Έλ§₯(Bounded Contexts), λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ μ•„ν‚€ν…μ²˜(MSA), [[κ΄€μ‹¬μ‚¬μ˜ 뢄리(SoC)]] - **Projects/Contexts:** 이벀트 μŠ€ν† λ°(Event Storming), λ³΅μž‘ν•œ λΉ„μ¦ˆλ‹ˆμŠ€ 도메인(금육, 의료, 이컀머슀 λ“±) - **Contradictions/Notes:** 도메인 주도 μ„€κ³„λŠ” λΉ„μ¦ˆλ‹ˆμŠ€ 도메인을 λͺ…ν™•ν•˜κ²Œ λ°˜μ˜ν•˜κ³  κ°•λ ₯ν•œ κΈ°λ°˜μ„ μ œκ³΅ν•˜μ§€λ§Œ, κΉŠμ€ μˆ˜μ€€μ˜ λͺ¨λΈλ§κ³Ό 쑰직적 ν˜‘λ ₯이 ν•„μš”ν•˜λ―€λ‘œ κ΅¬ν˜„ λ³΅μž‘μ„±μ΄ λ†’κ³  μƒλ‹Ήν•œ λ¦¬μ†ŒμŠ€(도메인 μ „λ¬Έκ°€, 뢄석 μ‹œκ°„ λ“±)κ°€ μš”κ΅¬λœλ‹€λŠ” μ œμ•½μ΄ μžˆμŠ΅λ‹ˆλ‹€ [6]. --- *Last updated: 2026-04-18* ---