--- id: P-REINFORCE-AI-CLEANARCH-TS category: "[[10_Wiki/πŸ’‘ Topics/Software Architecture]]" confidence_score: 0.99 tags: [TypeScript, Clean Architecture, Type Safety, Mapping] last_reinforced: 2026-04-20 --- # [[Clean-Architecture-TypeScript]] (νƒ€μž…μŠ€ν¬λ¦½νŠΈμ™€ 클린 μ•„ν‚€ν…μ²˜) ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > νƒ€μž…μŠ€ν¬λ¦½νŠΈμ˜ κ°•λ ₯ν•œ νƒ€μž… μ‹œμŠ€ν…œμ€ 클린 μ•„ν‚€ν…μ²˜μ˜ 'λ ˆμ΄μ–΄ κ°„ 경계'λ₯Ό 물리적으둜 κ°•μ œν•˜λŠ” κ°€μž₯ μ™„λ²½ν•œ κ°μ‹œμžλ‹€. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) - **Domain Interface First**: - Use CaseλŠ” ꡬ체적인 λ ˆν¬μ§€ν† λ¦¬κ°€ μ•„λ‹Œ, νƒ€μž…μŠ€ν¬λ¦½νŠΈ `interface`μ—λ§Œ μ˜μ‘΄ν•˜κ²Œ μ„€κ³„ν•˜λΌ. μ΄λ ‡κ²Œ ν•˜λ©΄ ν…ŒμŠ€νŠΈ μž‘μ„± μ‹œ κ°€μ§œ(Mock) 객체λ₯Ό κ°ˆμ•„ λΌμš°λŠ” 것이 숨 쉬듯 μ‰¬μ›Œμ§„λ‹€. - **Data Transfer Object (DTO) Mapping**: - DB μ—”ν‹°ν‹° νƒ€μž…μ„ UIκΉŒμ§€ κ·ΈλŒ€λ‘œ 끌고 κ°€μ§€ 마라. λ ˆμ΄μ–΄λ₯Ό λ„˜λ‚˜λ“€ λ•Œλ§ˆλ‹€ `Mapper`λ₯Ό 톡해 ν•„μš”ν•œ λ°μ΄ν„°λ§Œ μΆ”μΆœν•œ μ „μš© νƒ€μž…μ„ μ‚¬μš©ν•΄μ•Ό 'μ˜€μ—Ό'을 막을 수 μžˆλ‹€. - **Branded Types for ID**: - `UserId`, `OrderId`λ₯Ό λ‹¨μˆœν•œ `string`이 μ•„λ‹Œ 고유 νƒ€μž…μœΌλ‘œ μ •μ˜ν•˜μ—¬, μ‹€μˆ˜λ‘œ μœ μ € ID 칸에 μ£Όλ¬Έ IDλ₯Ό λ„£λŠ” μ‹€μˆ˜λ₯Ό 컴파일 νƒ€μž„μ— μž‘μ•„λ‚Έλ‹€. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (RL Update) - κ³Όλ„ν•œ 'Mapping'은 λŸ°νƒ€μž„ μ„±λŠ₯κ³Ό 개발 μ‹œκ°„μ„ μ†Œλͺ¨ν•œλ‹€. 도메인과 데이터 κ³„μΈ΅μ˜ λͺ¨μ–‘이 90% 이상 μΌμΉ˜ν•œλ‹€λ©΄, λ¬΄λ¦¬ν•˜κ²Œ λΆ„λ¦¬ν•˜κΈ°λ³΄λ‹€ `Pick`μ΄λ‚˜ `Omit` μœ ν‹Έλ¦¬ν‹° νƒ€μž…μ„ ν™œμš©ν•˜μ—¬ μœ μ—°ν•˜κ²Œ λŒ€μ‘ν•˜λŠ” 것이 μ‹€μš©μ μ΄λ‹€. ## πŸ”— 지식 μ—°κ²° (Graph) - Related: [[TypeScript_Type_Safety]] , [[React_State_Management_Strategy]] - Foundation: [[Clean-Architecture-Implementation]]