--- id: P-REINFORCE-WIKI-BDC76BE5 category: Unified confidence_score: 0.95 tags: ['c4-model', 'architectural-kata', 'software-architecture-documentation', 'architecture-principles'] last_reinforced: 2026-05-02 --- # [[C4 Model]] ## πŸ“Œ Brief Summary C4 λͺ¨λΈ(C4 Model)은 μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜λ₯Ό ν•„μš”ν•œ μˆ˜μ€€λ§ŒνΌλ§Œ(just enough) μœ μ—°ν•˜κ²Œ λͺ¨λΈλ§ν•  수 μžˆλ„λ‘ λ•λŠ” λ°©λ²•λ‘ μž…λ‹ˆλ‹€ [1]. 주둜 νŒ€ λ‹¨μœ„λ‘œ μ•„ν‚€ν…μ²˜ μ†”λ£¨μ…˜μ„ λ„μΆœν•˜λŠ” 'μ•„ν‚€ν…μ²˜ 카타(Architectural Kata)' κ³Όμ • λ“±μ—μ„œ μ»΄ν¬λ„ŒνŠΈλ₯Ό λͺ¨λΈλ§ν•  λ•Œ ν™œμš©λ©λ‹ˆλ‹€ [1]. κ·Έ μ™Έμ˜ μƒμ„Έν•œ μ •μ˜λ‚˜ 배경에 λŒ€ν•΄μ„œλŠ” μ†ŒμŠ€μ— κ΄€λ ¨ 정보가 λΆ€μ‘±ν•©λ‹ˆλ‹€. ## πŸ“– Core Content μ†ŒμŠ€μ— κ΄€λ ¨ 정보가 λΆ€μ‘±ν•©λ‹ˆλ‹€. (제곡된 μ†ŒμŠ€ λ¬Έν—Œ λ‚΄μ—μ„œλŠ” C4 λͺ¨λΈμ— λŒ€ν•΄ "νŒ€μ΄ μ•„ν‚€ν…μ²˜λ₯Ό ν•„μš”ν•œ 만큼만 λͺ¨λΈλ§ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•  수 μžˆλŠ” μœ μ—°ν•œ 방법(flexible method to model the architecture just enough)"μ΄λΌλŠ” λ‹¨νŽΈμ μΈ μ‚¬μ‹€λ§Œ μ–ΈκΈ‰λ˜μ–΄ 있으며 [1], ꡬ체적인 계측 κ΅¬μ‘°λ‚˜ μž‘λ™ 원리 등에 λŒ€ν•œ λ‚΄μš©μ€ ν¬ν•¨λ˜μ–΄ μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€.) ## βš–οΈ Trade-offs & Caveats μ†ŒμŠ€μ— κ΄€λ ¨ 정보가 λΆ€μ‘±ν•©λ‹ˆλ‹€. ## πŸ”— Knowledge Connections ### Related Concepts μ†ŒμŠ€μ— κ΄€λ ¨ 정보가 λΆ€μ‘±ν•©λ‹ˆλ‹€. (단, 제곡된 λ¬Έλ§₯ λ‚΄μ—μ„œ λ„μΆœ κ°€λŠ₯ν•œ μ—°κ΄€ κ°œλ…μ„ μ΅œμ†Œν•œμœΌλ‘œ μ œμ‹œν•©λ‹ˆλ‹€.) #### [μ•„ν‚€ν…μ²˜ 섀계 및 λ¬Έμ„œν™” 방법둠] - [[Architectural Kata]] - μ—°κ²° 이유: μ•„ν‚€ν…μ²˜ μΉ΄νƒ€λŠ” μš”κ΅¬μ‚¬ν•­μ— λ§žλŠ” μ•„ν‚€ν…μ²˜ μ†”λ£¨μ…˜μ„ λ„μΆœν•˜κΈ° μœ„ν•œ νŒ€μ›Œν¬ 과정이며, 이 κ³Όμ •μ—μ„œ μ»΄ν¬λ„ŒνŠΈλ₯Ό λͺ¨λΈλ§ν•˜λŠ” λ„κ΅¬λ‘œ C4 λͺ¨λΈμ΄ μ–ΈκΈ‰λ©λ‹ˆλ‹€ [1]. - 이 κ°œλ…μ„ 톡해 더 깊게 이해할 수 μžˆλŠ” λΆ€λΆ„: μ•„ν‚€ν…μ²˜ νŠΉμ„±(λΉ„κΈ°λŠ₯적 μš”κ΅¬μ‚¬ν•­)을 μΆ”μΆœν•˜κ³  μš°μ„ μˆœμœ„λ₯Ό μ§€μ •ν•œ λ’€, 이λ₯Ό λ°”νƒ•μœΌλ‘œ λͺ¨λΈλ§μ„ μˆ˜ν–‰ν•˜λŠ” 싀무적인 섀계 과정을 이해할 수 μžˆμŠ΅λ‹ˆλ‹€ [1]. ### Deeper Research Questions μ†ŒμŠ€μ— κ΄€λ ¨ 정보가 λΆ€μ‘±ν•©λ‹ˆλ‹€. (단, μ†ŒμŠ€μ˜ λ‹¨νŽΈμ  언급을 λ°”νƒ•μœΌλ‘œ 후속 쑰사λ₯Ό μœ„ν•œ μ§ˆλ¬Έμ„ κ΅¬μ„±ν–ˆμŠ΅λ‹ˆλ‹€.) - C4 λͺ¨λΈμ„ μ‚¬μš©ν•˜μ—¬ 동기적 톡신(synchronous communication)으둜 인해 μ„œλ‘œ μ–½ν˜€ λ™μΌν•œ μ•„ν‚€ν…μ²˜ νŠΉμ„±μ„ κ³΅μœ ν•΄μ•Ό ν•˜λŠ” μ»΄ν¬λ„ŒνŠΈλ“€μ„ μ–΄λ–»κ²Œ μ‹œκ°μ μœΌλ‘œ λͺ…ν™•νžˆ ν‘œν˜„ν•  수 μžˆλŠ”κ°€? [1] - C4 λͺ¨λΈμ€ 기쑴의 λ‹€λ₯Έ μ•„ν‚€ν…μ²˜ λ¬Έμ„œν™” λͺ¨λΈ(예: Kruchten의 4+1 View Model)κ³Ό λΉ„κ΅ν–ˆμ„ λ•Œ ꡬ쑰적으둜 μ–΄λ–€ 차이점과 싀무적 이점을 μ œκ³΅ν•˜λŠ”κ°€? [2] - ### Practical Application Contexts μ†ŒμŠ€μ— κ΄€λ ¨ 정보가 λΆ€μ‘±ν•©λ‹ˆλ‹€. (νŒŒμ•… κ°€λŠ₯ν•œ μ΅œμ†Œν•œμ˜ λ§₯락만 κΈ°μž¬ν•©λ‹ˆλ‹€.) - **Implementation:** μ†ŒμŠ€μ— κ΄€λ ¨ 정보가 λΆ€μ‘±ν•©λ‹ˆλ‹€. - **System Design:** μ†Œν”„νŠΈμ›¨μ–΄ 섀계 초기 λ‹¨κ³„λ‚˜ μ•„ν‚€ν…μ²˜ 카타(Architectural Kata) μ„Έμ…˜μ—μ„œ, νŒ€μ΄ μ•„ν‚€ν…μ²˜μ˜ λΉ„κΈ°λŠ₯적 μš”κ΅¬μ‚¬ν•­μ„ μ •μ˜ν•˜κ³  이λ₯Ό 기반으둜 μ‹œμŠ€ν…œ μ»΄ν¬λ„ŒνŠΈλ“€μ„ μœ μ—°ν•˜κ²Œ μ‹œκ°ν™”ν•˜κ³  λͺ¨λΈλ§ν•˜λŠ” 데 ν™œμš©λ©λ‹ˆλ‹€ [1]. - **Operation / Maintenance:** μ†ŒμŠ€μ— κ΄€λ ¨ 정보가 λΆ€μ‘±ν•©λ‹ˆλ‹€. - **Learning Path:** μ†ŒμŠ€μ— κ΄€λ ¨ 정보가 λΆ€μ‘±ν•©λ‹ˆλ‹€. - **My Project Relevance:** μ†ŒμŠ€μ— κ΄€λ ¨ 정보가 λΆ€μ‘±ν•©λ‹ˆλ‹€. ### Adjacent Topics - [[Software Architecture Documentation]] - ν™•μž₯ λ°©ν–₯: C4 λͺ¨λΈ 외에도 μ΄ν•΄κ΄€κ³„μžμ™€μ˜ μ›ν™œν•œ μ†Œν†΅μ„ μœ„ν•΄ μ‚¬μš©λ˜λŠ” μ•„ν‚€ν…μ²˜ λ·°(Architectural views) 및 λ¬Έμ„œν™” 기법(예: UML, 4+1 View Model λ“±) μ „λ°˜μœΌλ‘œ 지식을 ν™•μž₯ν•˜μ—¬ μ‹œμŠ€ν…œμ˜ ꡬ쑰적 결정을 κΈ°λ‘ν•˜λŠ” 방법을 ν•™μŠ΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [2]. --- *Last updated: 2026-05-02*