# [[Domain-Driven Design]] ## πŸ“Œ Brief Summary 도메인 주도 섀계(Domain-Driven Design, DDD)λŠ” 기술적인 파일 μœ ν˜•μ΄λ‚˜ 계측이 μ•„λ‹Œ λΉ„μ¦ˆλ‹ˆμŠ€ κ°œλ…(예: μ‚¬μš©μž, μ£Όλ¬Έ, 결제 λ“±)을 μ€‘μ‹¬μœΌλ‘œ ν”„λ‘ νŠΈμ—”λ“œ μ½”λ“œλ₯Ό κ΅¬μ„±ν•˜λŠ” μ•„ν‚€ν…μ²˜ 접근법이닀 [1]. 이 방식은 μ½”λ“œμ˜ 응집λ ₯을 높이고 λΉ„μ¦ˆλ‹ˆμŠ€ μ΄ν•΄κ΄€κ³„μžμ™€μ˜ μ›ν™œν•œ μ†Œν†΅μ„ λ•μ§€λ§Œ, ν”„λ‘ νŠΈμ—”λ“œ ν™˜κ²½μ„ μœ„ν•œ ꡬ체적이고 ν‘œμ€€ν™”λœ 폴더 ꡬ쑰λ₯Ό μ œκ³΅ν•˜μ§€λŠ” μ•ŠλŠ”λ‹€λŠ” ν•œκ³„κ°€ μžˆλ‹€ [1]. μ΄λŸ¬ν•œ κ°œλ…μ€ 졜근 ν”„λ‘ νŠΈμ—”λ“œ μƒνƒœκ³„μ—μ„œ κΈ°λŠ₯ λ‹¨μœ„λ‘œ μ½”λ“œλ₯Ό κ·Έλ£Ήν™”ν•˜λŠ” κΈ°λŠ₯ 기반(Feature-based) λ˜λŠ” 도메인 기반(Domain-based) 디렉토리 ꡬ쑰 및 κΈ°λŠ₯ λΆ„ν•  섀계(Feature-Sliced Design)둜 μ§„ν™”ν•˜μ—¬ ν™•μž₯성을 λ†’μ΄λŠ” λͺ¨λ²” μ‚¬λ‘€λ‘œ ν™œμš©λ˜κ³  μžˆλ‹€ [2-5]. ## πŸ“– Core Content * **λΉ„μ¦ˆλ‹ˆμŠ€ κ°œλ… μ€‘μ‹¬μ˜ μ•„ν‚€ν…μ²˜ ꡬ성:** ν”„λ‘ νŠΈμ—”λ“œμ—μ„œμ˜ DDDλŠ” λ‹¨μˆœν•œ μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€(UI) κ°œλ°œμ„ λ„˜μ–΄ λΉ„μ¦ˆλ‹ˆμŠ€ 도메인을 μ€‘μ‹¬μœΌλ‘œ μ½”λ“œλ₯Ό κ·Έλ£Ήν™”ν•œλ‹€ [1]. μ΄λŠ” 데이터λ₯Ό λ‹€λ£¨κ±°λ‚˜ 기술적 μ—­ν• (μ»΄ν¬λ„ŒνŠΈ, ν›…, μ„œλΉ„μŠ€ λ“±)λ³„λ‘œ νŒŒμΌμ„ λ‚˜λˆ„λ˜ 기쑴의 κ³„μΈ΅ν˜• μ•„ν‚€ν…μ²˜(Layered Architecture)의 ν•œκ³„λ₯Ό κ·Ήλ³΅ν•˜λ©°, λ³΅μž‘ν•œ λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ μ²˜λ¦¬ν•˜λŠ” 데 μ΅œμ ν™”λ˜μ–΄ μžˆλ‹€ [1, 6]. * **ν”„λ‘ νŠΈμ—”λ“œ κ΅¬ν˜„μ˜ ν•œκ³„:** μˆœμˆ˜ν•œ 도메인 주도 μ„€κ³„λŠ” ν”„λ‘ νŠΈμ—”λ“œμ— ν•„μš”ν•œ ꡬ체적이고 ν‘œμ€€ν™”λœ 폴더 ꡬ쑰λ₯Ό μ œκ³΅ν•˜μ§€ μ•ŠλŠ”λ‹€ [1]. 이둜 인해 개발 νŒ€μ€ μ—¬λŸ¬ λ„λ©”μΈμ—μ„œ κ³΅μœ ν•˜λŠ” UI, ꡐ차 도메인 κΈ°λŠ₯ 및 인프라 μ½”λ“œλ₯Ό 어디에 λ°°μΉ˜ν•΄μ•Ό ν• μ§€ κ²°μ •ν•˜λŠ” 데 μ’…μ’… 어렀움을 κ²ͺλŠ”λ‹€ [1]. * **κΈ°λŠ₯ λΆ„ν•  섀계(Feature-Sliced Design, FSD)둜의 μ§„ν™”:** DDD의 ν•œκ³„λ₯Ό κ·Ήλ³΅ν•˜κΈ° μœ„ν•΄ ν”„λ‘ νŠΈμ—”λ“œ μƒνƒœκ³„μ—μ„œλŠ” κΈ°λŠ₯ λΆ„ν•  섀계(FSD)λΌλŠ” ꡬ체적인 방법둠이 λ“±μž₯ν–ˆλ‹€ [2, 4]. FSDλŠ” DDD와 κ°œλ…μ  μœ μ‚¬μ„±μ„ κ³΅μœ ν•˜λ©΄μ„œλ„ React의 μ»΄ν¬λ„ŒνŠΈ 기반 νŠΉμ„±μ— 맞게 μ‘°μ •λ˜μ—ˆμœΌλ©°, 도메인 쀑심 원칙, μ»΄ν¬λ„ŒνŠΈ 기반 개발, λͺ¨λ“ˆν˜• μ‹œμŠ€ν…œ μ•„ν‚€ν…μ²˜λ₯Ό κ²°ν•©ν•˜μ—¬ λͺ…ν™•ν•œ 경계와 계측 ꡬ쑰λ₯Ό μ œκ³΅ν•œλ‹€ [2, 4]. * **λͺ¨λ˜ ν”„λ‘ νŠΈμ—”λ“œμ˜ 디렉토리 ꡬ쑰 λͺ¨λ²” 사둀:** 2025λ…„ κΈ°μ€€, ν”„λ‘ νŠΈμ—”λ“œ 개발 μ‚°μ—… ν‘œμ€€μ€ κΈ°λŠ₯ 기반 ꡬ쑰(Feature-based structure) λ˜λŠ” 도메인 기반 ꡬ쑰(Domain-based structure)둜 μ΄λ™ν–ˆλ‹€ [3]. μ»΄ν¬λ„ŒνŠΈ μ’…λ₯˜κ°€ μ•„λ‹Œ κΈ°λŠ₯ 및 도메인을 κΈ°μ€€μœΌλ‘œ μ»΄ν¬λ„ŒνŠΈ, ν›…, λ‘œμ§μ„ λΆ„λ¦¬ν•˜λ©΄ κΈ°λŠ₯ κ°„μ˜ μˆ¨κ²¨μ§„ 결합을 λ°©μ§€ν•˜κ³  μ½”λ“œλ² μ΄μŠ€μ˜ ν™•μž₯μ„±κ³Ό μœ μ§€λ³΄μˆ˜μ„±μ„ κ·ΉλŒ€ν™”ν•  수 μžˆλ‹€ [3, 5]. ## πŸ”— Knowledge Connections - **Related Topics:** [[Feature-Sliced Design]], [[Component-Based Architecture]], [[Layered Architecture]] - **Projects/Contexts:** [[Scalable React Architecture]], [[Frontend Folder Structure]] - **Contradictions/Notes:** μ†ŒμŠ€ [1]λŠ” DDDκ°€ 곡유 UIλ‚˜ 곡톡 인프라 μ½”λ“œλ₯Ό λ°°μΉ˜ν•  ꡬ체적이고 ν‘œμ€€ν™”λœ ν”„λ‘ νŠΈμ—”λ“œ 폴더 ꡬ쑰λ₯Ό μ œκ³΅ν•˜μ§€ λͺ»ν•˜λŠ” ν•œκ³„κ°€ μžˆλ‹€κ³  μ§€μ ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ†ŒμŠ€ [2, 4]에 λ”°λ₯΄λ©΄, κΈ°λŠ₯ λΆ„ν•  섀계(FSD)κ°€ DDD의 λΉ„μ¦ˆλ‹ˆμŠ€ 쀑심 원칙을 μ°¨μš©ν•˜λ©΄μ„œλ„ ν”„λ‘ νŠΈμ—”λ“œμ— νŠΉν™”λœ ꡬ체적인 계측(Layers)κ³Ό 슬라이슀(Slices) ꡬ쑰λ₯Ό μ œκ³΅ν•¨μœΌλ‘œμ¨ μ΄λŸ¬ν•œ 단점을 λ³΄μ™„ν•˜κ³  μžˆμŒμ„ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€. --- *Last updated: 2026-04-26*