--- category: Unified tags: [auto-consolidated, technical-documentation] title: [[C4 Model]] last_updated: 2026-05-02 --- # [[C4 Model]] ## ๐Ÿ“Œ Brief Summary C4 ๋ชจ๋ธ(C4 Model)์€ ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜๋ฅผ ํ•„์š”ํ•œ ์ˆ˜์ค€๋งŒํผ๋งŒ(just enough) ์œ ์—ฐํ•˜๊ฒŒ ๋ชจ๋ธ๋งํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ๋ฐฉ๋ฒ•๋ก ์ž…๋‹ˆ๋‹ค [1]. ์ฃผ๋กœ ํŒ€ ๋‹จ์œ„๋กœ ์•„ํ‚คํ…์ฒ˜ ์†”๋ฃจ์…˜์„ ๋„์ถœํ•˜๋Š” '์•„ํ‚คํ…์ฒ˜ ์นดํƒ€(Architectural Kata)' ๊ณผ์ • ๋“ฑ์—์„œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ชจ๋ธ๋งํ•  ๋•Œ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค [1]. ๊ทธ ์™ธ์˜ ์ƒ์„ธํ•œ ์ •์˜๋‚˜ ๋ฐฐ๊ฒฝ์— ๋Œ€ํ•ด์„œ๋Š” ์†Œ์Šค์— ๊ด€๋ จ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค. --- C4 ๋ชจ๋ธ์€ ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜ ๋‹ค์ด์–ด๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๊ณ„์ธต์  ์ ‘๊ทผ ๋ฐฉ์‹์ด๋‹ค [1]. ์ด ๋ชจ๋ธ์€ ์‹œ์Šคํ…œ์„ ์ปจํ…์ŠคํŠธ(Context), ์ปจํ…Œ์ด๋„ˆ(Containers), ์ปดํฌ๋„ŒํŠธ(Components), ์ฝ”๋“œ(Code)์˜ 4๋‹จ๊ณ„ ์ถ”์ƒํ™” ์ˆ˜์ค€์œผ๋กœ ๋‚˜๋ˆ„์–ด ์‹œ๊ฐํ™”ํ•œ๋‹ค [1]. ์ ์ง„์ ์œผ๋กœ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ํ™•๋Œ€ํ•˜๋Š” '์คŒ์ธ(Zoom-in)' ๋ฐฉ์‹์„ ํ†ตํ•ด ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ๊ตฌ์กฐ๋ฅผ ์ง๊ด€์ ์œผ๋กœ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ๋กœ๋ฅผ ์ œ๊ณตํ•œ๋‹ค [2, 3]. ์ด๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ์ดํ•ด๊ด€๊ณ„์ž๊ฐ€ ๊ฐ์ž์—๊ฒŒ ํ•„์š”ํ•œ ์ˆ˜์ค€์˜ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ํŒŒ์•…ํ•˜๊ณ , ์ผ๊ด€๋œ ์–ดํœ˜๋กœ ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•ด ์†Œํ†ตํ•˜๋„๋ก ๋•๋Š”๋‹ค [1, 4]. --- C4 ๋ชจ๋ธ์€ ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜ ๋‹ค์ด์–ด๊ทธ๋žจ์„ ์ปจํ…์ŠคํŠธ(Context), ์ปจํ…Œ์ด๋„ˆ(Container), ์ปดํฌ๋„ŒํŠธ(Component), ์ฝ”๋“œ(Code)์˜ 4๊ฐ€์ง€ ์ถ”์ƒํ™” ์ˆ˜์ค€์œผ๋กœ ๊ณ„์ธตํ™”ํ•˜์—ฌ ํ‘œํ˜„ํ•˜๋Š” ์ ‘๊ทผ๋ฒ•์ž…๋‹ˆ๋‹ค[1]. ์ด ๋ชจ๋ธ์€ ๋งˆ์น˜ ์ง€๋„๋ฅผ ํ™•๋Œ€(Zoom-in)ํ•˜๋“ฏ ์ƒ์œ„ ์ˆ˜์ค€์˜ ์‹œ์Šคํ…œ ๊ฐœ์š”๋ถ€ํ„ฐ ์„ธ๋ถ€์ ์ธ ์ฝ”๋“œ ๊ตฌํ˜„๊นŒ์ง€ ์ ์ง„์ ์œผ๋กœ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ์ œ๊ณตํ•˜์—ฌ, ๊ธฐ์ˆ ์  ์ง€์‹์ด ๋‹ค๋ฅธ ๋‹ค์–‘ํ•œ ์ดํ•ด๊ด€๊ณ„์ž๋“ค์ด ์ง๊ด€์ ์œผ๋กœ ์‹œ์Šคํ…œ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•์Šต๋‹ˆ๋‹ค[1, 2]. ํ‘œ์ค€ํ™”๋˜๊ณ  ๋„๊ตฌ์— ์ข…์†๋˜์ง€ ์•Š๋Š” ๋ทฐ๋ฅผ ์ œ๊ณตํ•จ์œผ๋กœ์จ ๋ณต์žกํ•œ ์ฝ”๋“œ๋ฒ ์ด์Šค์™€ ์‹œ์Šคํ…œ ์„ค๊ณ„๋ฅผ ์ผ๊ด€๋œ ์–ดํœ˜๋กœ ์†Œํ†ตํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค[1, 3]. ## ๐Ÿ“– Core Content ์†Œ์Šค์— ๊ด€๋ จ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค. (์ œ๊ณต๋œ ์†Œ์Šค ๋ฌธํ—Œ ๋‚ด์—์„œ๋Š” C4 ๋ชจ๋ธ์— ๋Œ€ํ•ด "ํŒ€์ด ์•„ํ‚คํ…์ฒ˜๋ฅผ ํ•„์š”ํ•œ ๋งŒํผ๋งŒ ๋ชจ๋ธ๋งํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์—ฐํ•œ ๋ฐฉ๋ฒ•(flexible method to model the architecture just enough)"์ด๋ผ๋Š” ๋‹จํŽธ์ ์ธ ์‚ฌ์‹ค๋งŒ ์–ธ๊ธ‰๋˜์–ด ์žˆ์œผ๋ฉฐ [1], ๊ตฌ์ฒด์ ์ธ ๊ณ„์ธต ๊ตฌ์กฐ๋‚˜ ์ž‘๋™ ์›๋ฆฌ ๋“ฑ์— ๋Œ€ํ•œ ๋‚ด์šฉ์€ ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.) --- C4 ๋ชจ๋ธ์€ ์ฝ”๋“œ๋ฒ ์ด์Šค์™€ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ดํ•ดํ•˜๊ณ  ๋ฌธ์„œํ™”ํ•˜๊ธฐ ์œ„ํ•œ ๋ช…ํ™•ํ•œ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. * **4๋‹จ๊ณ„ ์ถ”์ƒํ™” ๊ณ„์ธต** * **๋ ˆ๋ฒจ 1: ์ปจํ…์ŠคํŠธ (Context)**: ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ(์—ญํ• )๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ์™ธ๋ถ€ ์‹œ์Šคํ…œ์„ ๋ณด์—ฌ์ฃผ๋ฉฐ ๊ฐ€์žฅ ๋†’์€ ์ˆ˜์ค€์˜ ์ถ”์ƒํ™”๋ฅผ ์ œ๊ณตํ•œ๋‹ค [1, 5]. * **๋ ˆ๋ฒจ 2: ์ปจํ…Œ์ด๋„ˆ (Containers)**: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ํŒŒ์ผ ์‹œ์Šคํ…œ๊ณผ ๊ฐ™์€ ์‹œ์Šคํ…œ์˜ ์ฃผ์š” ๊ธฐ์ˆ ์  ๋นŒ๋”ฉ ๋ธ”๋ก๊ณผ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๋ฐฐํฌ ๋‹จ์œ„๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค [1, 5]. * **๋ ˆ๋ฒจ 3: ์ปดํฌ๋„ŒํŠธ (Components)**: ํŠน์ • ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ ์ฃผ์š” ๊ตฌ์กฐ์  ์ปดํฌ๋„ŒํŠธ์™€ ์ด๋“ค ๊ฐ„์˜ ๋‚ด๋ถ€ ๋ฐ ์™ธ๋ถ€ ๊ด€๊ณ„, ๊ตฌํ˜„ ๊ธฐ์ˆ  ๋“ฑ์„ ์ƒ์„ธํžˆ ๋ณด์—ฌ์ค€๋‹ค [1, 2]. * **๋ ˆ๋ฒจ 4: ์ฝ”๋“œ (Code)**: (์„ ํƒ ์‚ฌํ•ญ) ์‹œ์Šคํ…œ์˜ ์ฝ”๋“œ๊ฐ€ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”์ง€ ๋ณด์—ฌ์ฃผ๋ฉฐ, ๋Œ€๊ฐœ UML ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ์˜ ํ˜•ํƒœ๋ฅผ ๋ค๋‹ค [1]. * **์ž‘๋™ ์›๋ฆฌ ๋ฐ ์ฃผ์š” ์žฅ์ ** * **์ง๊ด€์ ์ธ Zoom-in ๋ฐฉ์‹**: ์ปจํ…์ŠคํŠธ ๋ทฐ์—์„œ๋ถ€ํ„ฐ ์ ์ง„์ ์œผ๋กœ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ํ™•๋Œ€ํ•˜์—ฌ ์‚ดํŽด๋ณด๋Š” ๋ฐฉ์‹์„ ์ทจํ•˜๋ฏ€๋กœ ๋ณต์žกํ•œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋‹จ๊ณ„์ ์œผ๋กœ ์†Œํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค [1-3]. * **๋Œ€์ƒ๋ณ„ ๋งž์ถคํ˜• ์„ธ๋ถ€ ์ •๋ณด ์ œ๊ณต**: ๊ธฐ์ˆ  ์ˆ˜์ค€์ด๋‚˜ ์ง๊ตฐ์— ๋”ฐ๋ผ ์ดํ•ด๊ด€๊ณ„์ž์—๊ฒŒ ํ•„์š”ํ•œ ์ถ”์ƒํ™” ๊ณ„์ธต์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์—, ์ถ”์ƒํ™” ์ˆ˜์ค€์ด ๋’ค์„ž์ด๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค [1]. * **๋‹ค๋ชฉ์  ํ™œ์šฉ์„ฑ ๋ฐ ํ‘œ์ค€ํ™”**: ํŠน์ • ๋„๊ตฌ๋‚˜ ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก ์— ์ข…์†๋˜์ง€ ์•Š์€ ํ‘œ์ค€ํ™”๋œ ๋ทฐ๋ฅผ ์ œ๊ณตํ•˜์—ฌ, ์‹œ์Šคํ…œ ์„ค๊ณ„ ์˜๋„๋ฅผ ํŒ€ ์ „๋ฐ˜์— ๊ฑธ์ณ ํšจ์œจ์ ์œผ๋กœ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค [1, 4]. --- C4 ๋ชจ๋ธ์€ ํ˜ผ์žฌ๋œ ์ถ”์ƒํ™” ์ˆ˜์ค€์œผ๋กœ ์ธํ•œ ํ˜ผ๋ž€์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์กฐ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์€ 4๋‹จ๊ณ„์˜ ๋ช…ํ™•ํ•œ ๊ณ„์ธต์œผ๋กœ ์‹œ๊ฐํ™”ํ•ฉ๋‹ˆ๋‹ค[1, 2]. * **๋ ˆ๋ฒจ 1: ์ปจํ…์ŠคํŠธ ๋‹ค์ด์–ด๊ทธ๋žจ (Context Diagram)** * ๊ฐ€์žฅ ๋†’์€ ์ถ”์ƒํ™” ์ˆ˜์ค€์œผ๋กœ ์‹œ์Šคํ…œ์„ ํ•˜๋‚˜์˜ ๋ธ”๋ž™๋ฐ•์Šค๋กœ ์ทจ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค[4, 5]. * ๋ˆ„๊ฐ€ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉ(์—ญํ• /์‚ฌ์šฉ์ž)ํ•˜๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ์‹œ์Šคํ…œ์ด ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ์™ธ๋ถ€ ์‹œ์Šคํ…œ์€ ๋ฌด์—‡์ธ์ง€๋ฅผ ๋ณด์—ฌ์ฃผ์–ด ์ „์ฒด์ ์ธ ๊ฒฝ๊ณ„์™€ ์˜์กด์„ฑ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค[1, 4, 5]. * **๋ ˆ๋ฒจ 2: ์ปจํ…Œ์ด๋„ˆ ๋‹ค์ด์–ด๊ทธ๋žจ (Container Diagram)** * ์ปจํ…์ŠคํŠธ๋ฅผ ํ™•๋Œ€ํ•˜์—ฌ ์‹œ์Šคํ…œ ๋‚ด์˜ ์ฃผ์š” ๊ธฐ์ˆ ์  ๊ตฌ์„ฑ ๋ธ”๋ก๋“ค์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค[1]. * ์—ฌ๊ธฐ์„œ ์ปจํ…Œ์ด๋„ˆ๋ž€ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๊ฑฐ๋‚˜ ๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ ๋‹จ์œ„(์˜ˆ: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ํŒŒ์ผ ์‹œ์Šคํ…œ ๋“ฑ)๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค[5]. * ๊ฐ ์ปจํ…Œ์ด๋„ˆ์— ํ• ๋‹น๋œ ์ฑ…์ž„, ์ฃผ์š” ๊ธฐ์ˆ  ์„ ํƒ, ํ†ต์‹  ์ฑ„๋„ ๋ฐ ์˜์กด์„ฑ์„ ๋งคํ•‘ํ•ฉ๋‹ˆ๋‹ค[5]. * **๋ ˆ๋ฒจ 3: ์ปดํฌ๋„ŒํŠธ ๋‹ค์ด์–ด๊ทธ๋žจ (Component Diagram)** * ํŠน์ • ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€๋ฅผ ํ™•๋Œ€ํ•˜์—ฌ ์ฃผ์š” ๊ตฌ์กฐ์  ์ปดํฌ๋„ŒํŠธ๋“ค๊ณผ ๊ทธ ์ƒํ˜ธ์ž‘์šฉ์„ ๋“œ๋Ÿฌ๋ƒ…๋‹ˆ๋‹ค[1, 6]. * ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ œ๊ณตํ•˜๊ฑฐ๋‚˜ ์š”๊ตฌํ•˜๋Š” ๊ธฐ๋Šฅ, ๋‚ด๋ถ€ API, ์ปดํฌ๋„ŒํŠธ ๊ฐ„์˜ ์˜์กด์„ฑ ๋ฐ ๊ตฌํ˜„ ๊ธฐ์ˆ ์„ ๊ตฌ์ฒด์ ์œผ๋กœ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค[2, 7]. * **๋ ˆ๋ฒจ 4: ์ฝ”๋“œ ๋‹ค์ด์–ด๊ทธ๋žจ (Code Diagram)** * ์„ ํƒ์ ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ๊ฐ€์žฅ ๋‚ฎ์€ ์ˆ˜์ค€์˜ ๋ทฐ๋กœ, ์ฝ”๋“œ๊ฐ€ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”์ง€ ์ƒ์„ธํžˆ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค[1]. * ์ฃผ๋กœ UML(Unified Modeling Language) ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ์„ ํ™œ์šฉํ•ด ๊ฐ์ฒด์™€ ํด๋ž˜์Šค์˜ ์ •์  ๊ตฌ์กฐ๋ฅผ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค[1]. **C4 ๋ชจ๋ธ์˜ ์ด์ ** * ๋‹จ์ˆœํ•œ ๋ธ”๋ก๊ณผ ์„ ์˜ ๋‚˜์—ด์„ ๋„˜์–ด, ์ฒญ์ค‘(๋น„๊ธฐ์ˆ ์  ์ดํ•ด๊ด€๊ณ„์ž๋ถ€ํ„ฐ ๊ฐœ๋ฐœ์ž๊นŒ์ง€)์— ๋”ฐ๋ผ ํ•„์š”ํ•œ ๋งŒํผ์˜ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ๋งž์ถคํ˜•์œผ๋กœ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค[1]. * ์ถ”์ƒํ™” ์ˆ˜์ค€์ด ์„ž์ด๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜์—ฌ ๋ณต์žกํ•œ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•œ ํŒ€ ๊ฐ„์˜ ์˜์‚ฌ์†Œํ†ต๊ณผ ์ดํ•ด๋„๋ฅผ ๊ทน๋Œ€ํ™”ํ•ฉ๋‹ˆ๋‹ค[1-3]. * ๋ณต์žกํ•œ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ์ฝ๊ณ  ํŒŒ์•…ํ•  ๋•Œ, ์ง๊ด€์ ์ธ ํƒ์ƒ‰ ๊ฒฝ๋กœ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๊ฐœ๋ฐœ์ž์˜ ์ธ์ง€์  ๊ณผ๋ถ€ํ•˜๋ฅผ ์ค„์—ฌ์ค๋‹ˆ๋‹ค[8]. ## โš–๏ธ Trade-offs & Caveats ์†Œ์Šค์— ๊ด€๋ จ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค. --- C4 ๋ชจ๋ธ์€ ๋„๊ตฌ ๋ฐ ๋ฐฉ๋ฒ•๋ก ์— ๋…๋ฆฝ์ ์ธ ํ‘œ์ค€ํ™”๋œ ๋ทฐ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์ดํ•ด๊ด€๊ณ„์ž์™€ ์„ค๊ณ„ ์˜๋„๋ฅผ ์†Œํ†ตํ•˜๋Š” ๋ฐ ๋งค์šฐ ๋‹ค๋ชฉ์ ์œผ๋กœ ํ™œ์šฉ๋˜์ง€๋งŒ ์ œ์•ฝ ์‚ฌํ•ญ๋„ ์กด์žฌํ•œ๋‹ค. ์ง๊ด€์ ์ธ ๊ณ„์ธตํ˜• ๊ตฌ์กฐ๋ฅผ ๊ฐ–์ถ”๊ณ  ์žˆ์œผ๋‚˜, ์‹œ์Šคํ…œ์˜ ๋ณต์žกํ•œ ์„ธ๋ถ€ ๋ช…์„ธ๋‚˜ ์ •๊ตํ•œ ์ŠคํŽ™์„ ํ‘œํ˜„ํ•˜๋Š” ๋ฐ ์žˆ์–ด์„œ๋Š” UML(Unified Modeling Language)์ด ์ œ๊ณตํ•˜๋Š” ์ˆ˜์ค€์˜ ๋””ํ…Œ์ผ๊ณผ ํ’๋ถ€ํ•จ(richness)์ด ๋ถ€์กฑํ•˜๋‹ค๋Š” ํ•œ๊ณ„(Trade-off)๊ฐ€ ์žˆ๋‹ค [4]. --- * **์„ธ๋ฐ€ํ•œ ๋ช…์„ธ์˜ ํ•œ๊ณ„:** C4 ๋ชจ๋ธ์€ ๋‹ค์–‘ํ•œ ์ดํ•ด๊ด€๊ณ„์ž์™€ ์ง๊ด€์ ์œผ๋กœ ์†Œํ†ตํ•˜๋Š” ๋ฐ ๋‹ค์žฌ๋‹ค๋Šฅํ•˜์ง€๋งŒ, ๊ณ ๋„๋กœ ๋ณต์žกํ•˜๊ณ  ์ •๋ฐ€ํ•œ ์†Œํ”„ํŠธ์›จ์–ด ๋ช…์„ธ๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ๋Š” UML์ด ์ œ๊ณตํ•˜๋Š” ํ’๋ถ€ํ•จ๊ณผ ์ƒ์„ธํ•œ ์˜๋ฏธ์ (Semantic) ๋””ํ…Œ์ผ์ด ๋ถ€์กฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค[3]. * **ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ ํ‘œํ˜„์˜ ๋ถ€์กฑ:** ๋…ผ๋ฆฌ์  ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜์— ์ดˆ์ ์„ ๋งž์ถ”๊ธฐ ๋•Œ๋ฌธ์—, ํด๋ผ์šฐ๋“œ ์•„ํ‚คํ…์ฒ˜ ๋‹ค์ด์–ด๊ทธ๋žจ์—์„œ ํ•„์ˆ˜์ ์œผ๋กœ ๋‹ค๋ฃจ๋Š” ํ•˜๋“œ์›จ์–ด์˜ ๋ฌผ๋ฆฌ์  ๋ฐฐ์น˜, ์„œ๋ธŒ๋„ท(Subnets), VPC(Virtual Private Clouds), ๋ผ์šฐํ„ฐ ๋“ฑ์˜ ๋ณต์žกํ•œ ํด๋ผ์šฐ๋“œ ๋ฐฐํฌ ์ธํ”„๋ผ ๋ฐ ๋„คํŠธ์›Œํ‚น ์š”์†Œ๋ฅผ ๊ตฌ์ฒด์ ์œผ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๋ฐ๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค[3, 9]. ## ๐Ÿ”— 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* --- ### Related Concepts #### [์•„ํ‚คํ…์ฒ˜/๊ธฐ๋ฐ˜ ๊ธฐ์ˆ ] - [[์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜ ๋‹ค์ด์–ด๊ทธ๋žจ (Software Architecture Diagrams)]] - ์—ฐ๊ฒฐ ์ด์œ : C4 ๋ชจ๋ธ ์ž์ฒด๊ฐ€ ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜ ๋‹ค์ด์–ด๊ทธ๋žจ์„ ํšจ๊ณผ์ ์ด๊ณ  ์ฒด๊ณ„์ ์œผ๋กœ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ์ฒด์ ์ธ ๋ฐฉ๋ฒ•๋ก ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค [1, 2]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์•„ํ‚คํ…์ฒ˜ ๋‹ค์ด์–ด๊ทธ๋žจ์ด ์˜์‚ฌ์†Œํ†ต, ์‹œ์Šคํ…œ ๋ฌธ์„œํ™”, ์˜จ๋ณด๋”ฉ, ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… ๋“ฑ์—์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ํฌ๊ด„์ ์ธ ์—ญํ• ๊ณผ ๋‹ค์–‘ํ•œ ๋‹ค์ด์–ด๊ทธ๋žจ ์œ ํ˜•(์ปจํ…์ŠคํŠธ, ๋ฐฐํฌ, ์‹œํ€€์Šค ๋“ฑ)์„ ํญ๋„“๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค [6-8]. - [[UML (Unified Modeling Language)]] - ์—ฐ๊ฒฐ ์ด์œ : C4 ๋ชจ๋ธ์˜ ๋งˆ์ง€๋ง‰ '์ฝ”๋“œ' ๋ ˆ๋ฒจ์—์„œ ์ฃผ๋กœ UML ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ์ด ์‚ฌ์šฉ๋˜๋ฉฐ, C4 ๋ชจ๋ธ์˜ ๋ถ€์กฑํ•œ ์„ธ๋ถ€ ํ‘œํ˜„๋ ฅ์„ ๋ณด์™„ํ•  ์ˆ˜ ์žˆ๋Š” ํ‘œ์ค€ ๋ชจ๋ธ๋ง ์–ธ์–ด์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค [1, 4, 9]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ๊ฐ์ฒด ์ง€ํ–ฅ ์„ค๊ณ„์—์„œ ํด๋ž˜์Šค ๊ฐ„์˜ ๊ด€๊ณ„(์ƒ์†, ์˜์กด์„ฑ, ์ปดํฌ์ง€์…˜ ๋“ฑ)๋ฅผ ์–ด๋–ป๊ฒŒ ์ •๋ฐ€ํ•˜๊ฒŒ ๋ชจ๋ธ๋งํ•˜๊ณ  ๋ณต์žกํ•œ ์ƒํ˜ธ์ž‘์šฉ์„ ๋ช…์„ธํ•˜๋Š”์ง€ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค [9, 10]. #### [๊ตฌํ˜„/ํ™œ์šฉ ๋„๊ตฌ] - [[Structurizr]] - ์—ฐ๊ฒฐ ์ด์œ : C4 ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์ฝ”๋“œ๋กœ ๋‹ค์ด์–ด๊ทธ๋žจ ์ž‘์„ฑ(Diagrams as Code) ๋„๊ตฌ๋กœ, C4 ๋ชจ๋ธ์„ ์ง์ ‘์ ์œผ๋กœ ๊ตฌํ˜„ํ•˜๊ณ  ๋ฒ„์ „ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋•๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค [11]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: C4 ๋ชจ๋ธ ๋‹ค์ด์–ด๊ทธ๋žจ์„ ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ์ฝ”๋“œ๋กœ ์ •์˜ํ•˜์—ฌ ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ์ง„ํ™”์— ๋งž์ถฐ ๋‹ค์ด์–ด๊ทธ๋žจ์˜ ์ผ๊ด€์„ฑ๊ณผ ํ˜•์ƒ ๊ด€๋ฆฌ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค [11]. - [[PlantUML]] - ์—ฐ๊ฒฐ ์ด์œ : C4 ๊ธฐ๋ฐ˜์˜ ์‹œ๊ฐํ™” ๋„๊ตฌ ์ค‘ ํ•˜๋‚˜๋กœ, vFunction๊ณผ ๊ฐ™์€ ๋ถ„์„ ํˆด์—์„œ ์ถ”์ถœํ•œ ๋ผ์ด๋ธŒ ์•„ํ‚คํ…์ฒ˜๋ฅผ C4 ์ปจํ…Œ์ด๋„ˆ ๋‹ค์ด์–ด๊ทธ๋žจ ํ˜•ํƒœ๋กœ ์‹œ๊ฐํ™”ํ•  ๋•Œ ํ™œ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค [12-14]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ๊ธฐ์กด์˜ ๋ณต์žกํ•œ ์‹œ์Šคํ…œ์ด๋‚˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋งํ•˜์—ฌ ์–ด๋–ป๊ฒŒ ์‹œ๊ฐ์ ์ธ C4 ๋ชจ๋ธ ๋‹ค์ด์–ด๊ทธ๋žจ์œผ๋กœ ์ž๋™ ๋ณ€ํ™˜ํ•ด ๋‚ผ ์ˆ˜ ์žˆ๋Š”์ง€ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค [13]. ### Deeper Research Questions - C4 ๋ชจ๋ธ์˜ 4๋‹จ๊ณ„ ์ถ”์ƒํ™” ์ค‘ '์ฝ”๋“œ(Code)' ๋ ˆ๋ฒจ์ด ์ฃผ๋กœ ์„ ํƒ ์‚ฌํ•ญ(Optional)์œผ๋กœ ๊ฐ„์ฃผ๋˜๋Š” ์‹ค๋ฌด์ ์ธ ์ด์œ ์™€ ์œ ์ง€๋ณด์ˆ˜ ๊ด€์ ์˜ ํ•œ๊ณ„๋Š” ๋ฌด์—‡์ธ๊ฐ€? - C4 ๋ชจ๋ธ๊ณผ UML์„ ์‹ค์ œ ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ ์กฐ์ง์—์„œ ํ˜ผํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•  ๋•Œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์„œํ™”์˜ ์ค‘๋ณต์ด๋‚˜ ํ˜ผ๋ž€์„ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ธ๊ฐ€? - ์‹œ์Šคํ…œ์ด ์ง€์†์ ์œผ๋กœ ๋ณ€๊ฒฝ๋  ๋•Œ, C4 ๋ชจ๋ธ ๊ธฐ๋ฐ˜์˜ ๋‹ค์ด์–ด๊ทธ๋žจ์ด ์‹ค์ œ ์ฝ”๋“œ๋ฒ ์ด์Šค์™€ ๋ถˆ์ผ์น˜ํ•˜๋Š” ํ˜„์ƒ(Architectural Drift)์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋™ํ™” ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐฉ์•ˆ์€ ๋ฌด์—‡์ธ๊ฐ€? - ๋น„๊ธฐ์ˆ  ์ง๊ตฐ(์˜ˆ: PM, UX)๊ณผ ๊ธฐ์ˆ  ์ง๊ตฐ(์˜ˆ: ๋ฐฑ์—”๋“œ/ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž) ๊ฐ„์˜ ํ˜‘์—… ์‹œ, C4 ๋ชจ๋ธ์˜ ๊ฐ ๊ณ„์ธต ๋ทฐ(View)๋Š” ๊ฐ๊ฐ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ๊ฐ€์žฅ ๋นˆ๋ฒˆํ•˜๊ณ  ํšจ๊ณผ์ ์œผ๋กœ ํ™œ์šฉ๋˜๋Š”๊ฐ€? - ์ด๋ฏธ ๋ณต์žกํ•˜๊ฒŒ ์–ฝํ˜€ ์žˆ๋Š” ๋ ˆ๊ฑฐ์‹œ(Monolithic) ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ C4 ๋ชจ๋ธ ๊ตฌ์กฐ๋กœ ๋งคํ•‘(Reverse Engineering)ํ•˜๊ณ ์ž ํ•  ๋•Œ ๊ฒช๋Š” ์ฃผ์š” ๊ธฐ์ˆ ์  ์žฅ๋ฒฝ๊ณผ ์ด๋ฅผ ํ•ด์†Œํ•˜๊ธฐ ์œ„ํ•œ ์ ‘๊ทผ๋ฒ•์€ ๋ฌด์—‡์ธ๊ฐ€? ### Practical Application Contexts - **Implementation:** ์ฝ”๋“œ๋ฒ ์ด์Šค ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋ฌธ์„œํ™”ํ•  ๋•Œ Draw.io, Structurizr, PlantUML ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ C4 ๋ชจ๋ธ์˜ ์Šคํƒ€์ผ(์ปจํ…์ŠคํŠธ, ์ปจํ…Œ์ด๋„ˆ ๋“ฑ)์„ ์ ์šฉํ•ด ๊ตฌ์กฐ๋ฅผ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ•˜๊ฑฐ๋‚˜ ์‹œ๊ฐ์ ์œผ๋กœ ์ž‘์„ฑํ•œ๋‹ค [11, 13, 15]. - **System Design:** ์ƒˆ๋กœ์šด ์‹œ์Šคํ…œ์„ ์„ค๊ณ„ํ•˜๊ฑฐ๋‚˜ ๊ธฐ์กด ์‹œ์Šคํ…œ์„ ๋ฆฌํŒฉํ† ๋งํ•  ๋•Œ, ์™ธ๋ถ€ ์ƒํ˜ธ์ž‘์šฉ(์ปจํ…์ŠคํŠธ)๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ์‹œ์Šคํ…œ ๋‚ด๋ถ€ ์š”์†Œ(์ปดํฌ๋„ŒํŠธ)๋กœ ์คŒ์ธํ•˜๋ฉฐ ์ „์ฒด์ ์ธ ์ฒญ์‚ฌ์ง„์„ ๋‹ค์–‘ํ•œ ์ดํ•ด๊ด€๊ณ„์ž์™€ ๋…ผ์˜ํ•œ๋‹ค [1, 2, 5, 16]. - **Operation / Maintenance:** vFunction ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ํ™œ์šฉํ•ด ์šด์˜ ์ค‘์ธ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์˜ ์‹ค์ œ ๋Ÿฐํƒ€์ž„ ์ƒํ˜ธ์ž‘์šฉ์„ ๋ถ„์„ํ•˜๊ณ , ์ด๋ฅผ C4 ์ปจํ…Œ์ด๋„ˆ ๋‹ค์ด์–ด๊ทธ๋žจ ํ˜•ํƒœ(Architecture as Code)๋กœ ์ถ”์ถœํ•ด ์ดˆ๊ธฐ ์„ค๊ณ„์™€ ์ผ์น˜ํ•˜๋Š”์ง€ ์•„ํ‚คํ…์ฒ˜ ๋“œ๋ฆฌํ”„ํŠธ๋ฅผ ์ ๊ฒ€ํ•œ๋‹ค [13, 14]. - **Learning Path:** ๋ฐฉ๋Œ€ํ•œ ์ฝ”๋“œ๋ฒ ์ด์Šค์— ์ง๋ฉดํ•œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ „์ฒด์ƒ์„ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด ์‹œ์Šคํ…œ์˜ ๊ฐ€์žฅ ๋†’์€ ์ถ”์ƒํ™” ๊ณ„์ธต์—์„œ ์‹œ์ž‘ํ•ด ์ ์ง„์ ์œผ๋กœ ์ฝ”๋“œ ๋ ˆ๋ฒจ๋กœ ์ง„์ž…ํ•˜๋Š” ํ•˜ํ–ฅ์‹(Top-down) ๋ฉ˜ํƒˆ ๋ชจ๋ธ์„ ํ˜•์„ฑํ•˜๋Š” ๋ฐ ํ™œ์šฉํ•œ๋‹ค [1, 3]. - **My Project Relevance:** ํ”„๋กœ์ ํŠธ์— ์ƒˆ๋กœ ํ•ฉ๋ฅ˜ํ•˜๋Š” ํŒ€์›์˜ ์˜จ๋ณด๋”ฉ(Onboarding)์„ ๋•๊ฑฐ๋‚˜ ์‹œ์Šคํ…œ ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ, ํŠน์ • ๊ธฐ์ˆ ์ด๋‚˜ ์ฝ”๋“œ ์„ธ๋ถ€ ์‚ฌํ•ญ์— ๋งค๋ชฐ๋˜์ง€ ์•Š๊ณ  ์ „์ฒด ์‹œ์Šคํ…œ ์˜๋„์™€ ๊ตฌ์กฐ๋ฅผ ์ง๊ด€์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ๋งต(Map)์œผ๋กœ ๊ธฐ๋Šฅํ•œ๋‹ค [3, 7, 13]. ### Adjacent Topics - [[๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜ (Microservices Architecture)]] - ํ™•์žฅ ๋ฐฉํ–ฅ: C4 ๋ชจ๋ธ์˜ '์ปจํ…Œ์ด๋„ˆ(Container)' ๊ณ„์ธต ๊ฐœ๋…๊ณผ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ฐ„์˜ ๊ฒฝ๊ณ„ ๋ฐ ํ†ต์‹ (Integration) ๋งคํ•‘ ๋ฐฉ์‹์„ ํƒ๊ตฌํ•˜๊ณ , ๋ถ„์‚ฐ ํ™˜๊ฒฝ ํ•˜์—์„œ์˜ ์‹œ์Šคํ…œ ์‹œ๊ฐํ™” ์ „๋žต์œผ๋กœ ์ดํ•ด๋ฅผ ๋„“ํž ์ˆ˜ ์žˆ๋‹ค. - [[์•„ํ‚คํ…์ฒ˜ ๋“œ๋ฆฌํ”„ํŠธ (Architectural Drift)]] - ํ™•์žฅ ๋ฐฉํ–ฅ: C4 ๋ชจ๋ธ๋กœ ์ž‘์„ฑ๋œ ์ดˆ๊ธฐ ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„๊ฐ€ ์‹ค์ œ ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ์ง„ํ™”์— ๋”ฐ๋ผ ๋ถˆ์ผ์น˜ํ•˜๊ฒŒ ๋˜๋Š” ์›์ธ๊ณผ, ์ด๋ฅผ ๋™์  ๋ชจ๋‹ˆํ„ฐ๋ง์„ ํ†ตํ•ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ฐฑ์‹ ํ•˜์—ฌ ๋ฌธ์„œ์˜ ์‹ ๋ขฐ์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ์กฐ์‚ฌ๋ฅผ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. --- *Last updated: 2026-05-02* --- ### Related Concepts #### [๊ด€๊ณ„ ์œ ํ˜• A: ์•„ํ‚คํ…์ฒ˜/๊ธฐ๋ฐ˜ ๊ธฐ์ˆ ] - [[UML (Unified Modeling Language)]] - ์—ฐ๊ฒฐ ์ด์œ : C4 ๋ชจ๋ธ์˜ '์ฝ”๋“œ' ๋ ˆ๋ฒจ ๋‹ค์ด์–ด๊ทธ๋žจ์—์„œ ์ฃผ๋กœ ์ฑ„์šฉ๋˜๋Š” ์–ธ์–ด์ด์ž, C4๊ฐ€ ์ปค๋ฒ„ํ•˜์ง€ ๋ชปํ•˜๋Š” ๋ณต์žกํ•œ ๋ช…์„ธ(ํด๋ž˜์Šค ๊ด€๊ณ„, ์ƒํ˜ธ์ž‘์šฉ ๋“ฑ)๋ฅผ ๊ตฌ์ฒด์ ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ํ‘œ์ค€ ๋ชจ๋ธ๋ง ์–ธ์–ด์ž…๋‹ˆ๋‹ค[1, 3]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์‹œ์Šคํ…œ์˜ ๊ฐ์ฒด ์ง€ํ–ฅ ์„ค๊ณ„, ํด๋ž˜์Šค ๊ฐ„์˜ ๊ด€๊ณ„(์ƒ์†, ํ•ฉ์„ฑ ๋“ฑ) ๋ฐ ์ •๋ฐ€ํ•œ ์ •์ /๋™์  ๊ตฌ์กฐ ๋ชจ๋ธ๋ง[10]. - [[Architecture Diagrams]] - ์—ฐ๊ฒฐ ์ด์œ : C4 ๋ชจ๋ธ์„ ๊ตฌ์„ฑํ•˜๋Š” ํ•ต์‹ฌ ์‹œ๊ฐํ™” ์‚ฐ์ถœ๋ฌผ(์ปจํ…์ŠคํŠธ, ์ปจํ…Œ์ด๋„ˆ, ์ปดํฌ๋„ŒํŠธ ๋‹ค์ด์–ด๊ทธ๋žจ)๋“ค์˜ ์ด์นญ์ž…๋‹ˆ๋‹ค[4, 6, 7]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์†Œํ”„ํŠธ์›จ์–ด ์‹œ์Šคํ…œ์˜ ์ฒญ์‚ฌ์ง„์„ ๊ทธ๋ฆฌ๊ณ  ์ดํ•ด๊ด€๊ณ„์ž์™€ ๊ตฌ์กฐ, ํ†ต์‹  ์ฑ„๋„, ์˜์กด์„ฑ์„ ์†Œํ†ตํ•˜๋Š” ๊ธฐ๋ณธ ์›๋ฆฌ[11, 12]. #### [๊ด€๊ณ„ ์œ ํ˜• B: ๊ตฌํ˜„/ํ™œ์šฉ ๋„๊ตฌ] - [[Structurizr]] - ์—ฐ๊ฒฐ ์ด์œ : C4 ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์•„ํ‚คํ…์ฒ˜ ๋‹ค์ด์–ด๊ทธ๋žจ์„ ์ฝ”๋“œ๋กœ ์ •์˜(Diagrams as Code)ํ•˜๊ณ  ์‹œ๊ฐํ™”ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค[13]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์•„ํ‚คํ…์ฒ˜ ๋ฌธ์„œ๋ฅผ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ๊ณผ ์นœํ™”์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ  ์ผ๊ด€๋œ ์Šคํƒ€์ผ๋ง์„ ๊ฐ•์ œํ•˜๋Š” ๋ฐฉ๋ฒ•[13]. - [[vFunction]] - ์—ฐ๊ฒฐ ์ด์œ : ๋ณต์žกํ•˜๊ฒŒ ์–ฝํžŒ ๊ธฐ์กด์˜ ๋ถ„์‚ฐ ์•„ํ‚คํ…์ฒ˜(๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๋“ฑ)๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ถ„์„ํ•˜์—ฌ C4 ์ปจํ…Œ์ด๋„ˆ ๋‹ค์ด์–ด๊ทธ๋žจ ํ˜•์‹์œผ๋กœ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ถ”์ถœํ•˜๊ณ  ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค[14, 15]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ์‹ค์ œ ๊ตฌ๋™ ์ค‘์ธ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ฐ€์‹œํ™”ํ•˜๊ณ , ์„ค๊ณ„๋„์™€์˜ ์ฐจ์ด(Architectural Drift)๋ฅผ ํŒŒ์•…ํ•˜๋Š” ์ „๋žต[14, 15]. ### Deeper Research Questions - C4 ๋ชจ๋ธ์˜ 4๋‹จ๊ณ„ ์ถ”์ƒํ™” ๊ตฌ์กฐ๋Š” PM(Product Manager), ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž, ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž, ๊ทธ๋ฆฌ๊ณ  ์ธํ”„๋ผ ์šด์˜์ž์˜ ์‹œ์Šคํ…œ ์ดํ•ด ์š”๊ตฌ๋ฅผ ๊ฐ๊ฐ ์–ด๋–ป๊ฒŒ ๋งŒ์กฑ์‹œํ‚ค๋Š”๊ฐ€? - ์ •๊ตํ•œ ๊ธฐ์ˆ  ๋ช…์„ธ๊ฐ€ ํ•„์š”ํ•  ๋•Œ C4 ๋ชจ๋ธ๊ณผ UML์„ ์–ด๋–ป๊ฒŒ ๊ฒฐํ•ฉํ•˜๊ฑฐ๋‚˜ ์ƒํ˜ธ ๋ณด์™„ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ด์ƒ์ ์ธ๊ฐ€? - ๋Œ€๊ทœ๋ชจ ๋ ˆ๊ฑฐ์‹œ ๋ชจ๋†€๋ฆฌ์Šค(Monolith) ์‹œ์Šคํ…œ์„ ๋ถ„์„ํ•  ๋•Œ, C4 ์ปจํ…Œ์ด๋„ˆ ๋‹ค์ด์–ด๊ทธ๋žจ ์ถ”์ถœ์ด ๊ฒฐํ•ฉ๋„(Coupling)์™€ ๋ฐ”์šด๋”๋ฆฌ๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๋ฐ ์–ด๋–ค ๋„์›€์„ ์ฃผ๋Š”๊ฐ€? - ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์„ค๊ณ„ํ•  ๋•Œ, C4 ๋ชจ๋ธ์ด ํ‘œํ˜„ํ•˜์ง€ ๋ชปํ•˜๋Š” ์ธํ”„๋ผ ์š”์†Œ(VPC, ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ ๋“ฑ)๋ฅผ ํด๋ผ์šฐ๋“œ ์ „์šฉ ๋‹ค์ด์–ด๊ทธ๋žจ๊ณผ ์–ด๋–ป๊ฒŒ ํ˜ผํ•ฉํ•˜์—ฌ ๋ฌธ์„œํ™”ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€? - Structurizr ๋“ฑ์„ ํ†ตํ•ด ๋‹ค์ด์–ด๊ทธ๋žจ์„ ์ฝ”๋“œ(Diagrams as Code)๋กœ ๊ด€๋ฆฌํ•  ๊ฒฝ์šฐ, ๊ธฐ์กด์˜ ์ •์  ์ด๋ฏธ์ง€ ๊ธฐ๋ฐ˜ ๋ฌธ์„œํ™” ๋ฐฉ์‹์ด ๊ฐ€์กŒ๋˜ '๋ฌธ์„œ ์ตœ์‹ ํ™” ์‹คํŒจ' ๋ฌธ์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€? ### Practical Application Contexts - **Implementation:** ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๊ตฌํ˜„ ์‹œ, ๊ฐœ๋ฐœ์ž๋Š” C4์˜ ์ปดํฌ๋„ŒํŠธ ๋‹ค์ด์–ด๊ทธ๋žจ์„ ํ†ตํ•ด ํ•ด๋‹น ๋ชจ๋“ˆ์˜ ๋‚ด๋ถ€ ๊ตฌ์กฐ์™€ ์ฑ…์ž„, ๊ทธ๋ฆฌ๊ณ  ์™ธ๋ถ€์™€์˜ ์˜์กด์„ฑ์„ ํŒŒ์•…ํ•œ ๋’ค ์ฝ”๋“œ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค[6, 7]. - **System Design:** ์‹ ๊ทœ ์‹œ์Šคํ…œ์„ ์„ค๊ณ„ํ•  ๋•Œ ์™ธ๋ถ€ ์‹œ์Šคํ…œ๊ณผ ์‚ฌ์šฉ์ž์˜ ๊ด€๊ณ„(์ปจํ…์ŠคํŠธ)๋ฅผ ๋จผ์ € ์‹๋ณ„ํ•˜๊ณ , ์ ์ง„์ ์œผ๋กœ ๋‚ด๋ถ€ ์ปจํ…Œ์ด๋„ˆ์™€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ช…์„ธํ•˜๋Š” ๋…ผ๋ฆฌ์ ์ด๊ณ  ์ฒด๊ณ„์ ์ธ ํ•˜ํ–ฅ์‹(Top-down) ๊ฐ€์ด๋“œ๋กœ ์ž‘์šฉํ•ฉ๋‹ˆ๋‹ค[16]. - **Operation / Maintenance:** ์šด์˜ ์ค‘์ธ ๋ถ„์‚ฐ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ํ™˜๊ฒฝ์—์„œ ์‹ค์‹œ๊ฐ„ ๋Ÿฐํƒ€์ž„ ๋ถ„์„ ๋„๊ตฌ(์˜ˆ: vFunction)์™€ ๊ฒฐํ•ฉํ•˜์—ฌ ์ฐธ์กฐ C4 ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ตฌ์„ฑํ•˜๋ฉด, ์„ค๊ณ„ ์˜๋„์™€ ๋‹ค๋ฅด๊ฒŒ ๋ณ€์งˆ๋œ ์•„ํ‚คํ…์ฒ˜ ๋“œ๋ฆฌํ”„ํŠธ(Architectural Drift)๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค[14, 15]. - **Learning Path:** ๋ณต์žกํ•œ ๋Œ€๊ทœ๋ชจ ์ฝ”๋“œ๋ฒ ์ด์Šค์— ์˜จ๋ณด๋”ฉํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋Š” ๊ฐ€์žฅ ์ƒ์œ„ ์ˆ˜์ค€์˜ ๋‹ค์ด์–ด๊ทธ๋žจ(์ปจํ…์ŠคํŠธ/์ปจํ…Œ์ด๋„ˆ)๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ํ•„์š”ํ•œ ์˜์—ญ๋งŒ ์ฝ”๋“œ๋กœ ์คŒ์ธ(Zoom-in)ํ•ด ๋“ค์–ด๊ฐ์œผ๋กœ์จ, ์ •๋ณด ๊ณผ๋ถ€ํ•˜ ์—†์ด ์‹œ์Šคํ…œ์„ ํ•™์Šตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค[1, 8]. - **My Project Relevance:** ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ์ „๋ฐ˜์ ์ธ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋ฌธ์„œํ™”ํ•˜๊ณ  ๋น„๊ธฐ์ˆ ์  ์ดํ•ด๊ด€๊ณ„์ž๋‚˜ ์ƒˆ๋กœ์šด ํŒ€์›์—๊ฒŒ ์‹œ์Šคํ…œ์„ ๋ธŒ๋ฆฌํ•‘ํ•  ๋•Œ, ์ฒญ์ค‘์˜ ์ดํ•ด๋„์— ๋งž์ถฐ ๋‹ค์ด์–ด๊ทธ๋žจ์˜ ๊นŠ์ด๋ฅผ ์กฐ์ ˆํ•˜๋Š” ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋„๊ตฌ๋กœ ํ™œ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค[1]. ### Adjacent Topics - [[Diagrams as Code]] - ํ™•์žฅ ๋ฐฉํ–ฅ: PlantUML, Mermaid์™€ ๊ฐ™์ด ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹ค์ด์–ด๊ทธ๋žจ์„ ์ƒ์„ฑํ•˜์—ฌ, ์ฝ”๋“œ์™€ ๋ฌธ์„œ๋ฅผ ๋™์ผํ•œ Git ์ €์žฅ์†Œ์—์„œ ํ•จ๊ป˜ ๋ฒ„์ €๋‹(Versioning)ํ•˜๊ณ  ์ž๋™ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•๋ก [13, 14]. - [[Layered Architecture]] - ํ™•์žฅ ๋ฐฉํ–ฅ: ์‹œ์Šคํ…œ์„ ํ”„๋ ˆ์  ํ…Œ์ด์…˜, ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง, ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๋“ฑ์˜ ์ˆ˜ํ‰์  ๊ณ„์ธต์œผ๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ์ „ํ†ต์  ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์œผ๋กœ, C4์˜ ์ปดํฌ๋„ŒํŠธ ๊ตฌ์กฐ๋ฅผ ์„ค๊ณ„ํ•˜๊ณ  ๋ถ„์„ํ•  ๋•Œ ํ•ต์‹ฌ์ด ๋˜๋Š” ๊ฐœ๋…[17, 18]. --- *Last updated: 2026-05-02* ## ๐Ÿงช ๊ฒ€์ฆ ์ƒํƒœ (Validation) - **์ •๋ณด ์ƒํƒœ:** draft - **์ถœ์ฒ˜ ์‹ ๋ขฐ๋„:** A - **๊ฒ€ํ†  ์ด์œ :** Datacollector์—์„œ ์ž๋™ ์ถ”์ถœ๋œ ์œ„ํ‚ค ๋ฐ์ดํ„ฐ์˜ ์ดˆ๊ธฐ ํ†ตํ•ฉ. ## ๐Ÿงฌ ์ค‘๋ณต ๊ฒ€์‚ฌ (Duplicate Check) - **๊ธฐ์กด ์œ ์‚ฌ ๋ฌธ์„œ:** None - **์ฒ˜๋ฆฌ ๋ฐฉ์‹:** CREATE - **์ฒ˜๋ฆฌ ์ด์œ :** ์‹ ๊ทœ ์ง€์‹ ์ฒด๊ณ„ ๋„์ž