--- id: P-REINFORCE-AI-DDD category: "[[10_Wiki/πŸ’‘ Topics/AI]]" confidence_score: 0.99 tags: [SoftwareEngineering, DDD, Architecture, DomainDrivenDesign] last_reinforced: 2026-04-20 --- # [[Domain-Driven-Design (DDD)]] (도메인 주도 섀계) ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > "기술의 μ–Έμ–΄κ°€ μ•„λ‹Œ, λΉ„μ¦ˆλ‹ˆμŠ€μ˜ μ–Έμ–΄λ‘œ μ½”λ“œλ₯Ό μ§œλŠ” μ² ν•™." λ³΅μž‘ν•œ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ 도메인(λΉ„μ¦ˆλ‹ˆμŠ€ 핡심 μ˜μ—­)을 λͺ¨λΈλ§μ˜ 쀑심에 두고, κ°œλ°œμžμ™€ μ „λ¬Έκ°€κ°€ λ™μΌν•œ μ–Έμ–΄(Ubiquitous Language)λ₯Ό κ³΅μœ ν•˜λ©° 섀계λ₯Ό μ΄μ–΄λ‚˜κ°€λŠ” 방식이닀. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) - **Ubiquitous Language (보편적 μ–Έμ–΄)**: 기획자, λ””μžμ΄λ„ˆ, κ°œλ°œμžκ°€ '결제'λ₯Ό 각자 λ‹€λ₯΄κ²Œ μ΄ν•΄ν•˜μ§€ μ•Šλ„λ‘ μ½”λ“œμ™€ λ¬Έμ„œμ—μ„œ λ™μΌν•œ μš©μ–΄λ₯Ό μ‚¬μš©ν•¨. - **Strategic Design**: - **Bounded Context**: κ±°λŒ€ν•œ 도메인을 논리적 κ²½κ³„λ‘œ μͺΌκ°œμ–΄ λͺ¨λΈ κ°„μ˜ 간섭을 μ΅œμ†Œν™”ν•¨. - **Context Map**: μ—¬λŸ¬ μ»¨ν…μŠ€νŠΈ κ°„μ˜ 관계λ₯Ό 도식화함. - **Tactical Design**: - **Entity vs Value Object**: μ‹λ³„μžκ°€ μ€‘μš”ν•œκ°€(μ‚¬μš©μž ID), 속성값이 μ€‘μš”ν•œκ°€(μ£Όμ†Œ, κΈˆμ•‘). - **Aggregate**: 데이터 λ³€κ²½μ˜ λ‹¨μœ„κ°€ λ˜λŠ” 객체 묢음. - **Repository**: 데이터 μ €μž₯μ†Œμ— λŒ€ν•œ 좔상화 계측. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (RL Update) - DDDλ₯Ό λͺ¨λ“  곳에 μ μš©ν•˜λ €λ‹€ 보면 'Over-engineering'에 λΉ μ§€κΈ° 쉽닀. λ‹¨μˆœν•œ CRUD 앱에 DDDλ₯Ό λ„μž…ν•˜λŠ” 것은 μ‹œκ°„ 낭비일 수 μžˆλ‹€. μ΅œκ·Όμ—λŠ” MSA(λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ μ•„ν‚€ν…μ²˜)의 경계λ₯Ό λ‚˜λˆ„λŠ” 기초 λ„κ΅¬λ‘œ DDDκ°€ ν•„μˆ˜μ μœΌλ‘œ μ“°μ΄μ§€λ§Œ, κ΅¬ν˜„μ˜ λ³΅μž‘μ„±μ„ 쀄이기 μœ„ν•΄ 핡심 도메인이 μ•„λ‹Œ 곳은 κ°€λ³κ²Œ μ§œλŠ” μ‹€μš©μ μΈ μ ‘κ·Ό(Clean DDD)이 μ„ ν˜Έλœλ‹€. ## πŸ”— 지식 μ—°κ²° (Graph) - Related: [[Bounded-Contexts]] , [[Ubiquitous-Language-Encoding]] - Pattern: [[Value-Object-Pattern]]