--- category: Unified tags: [auto-consolidated, technical-documentation] title: [[Software Architecture]] last_updated: 2026-05-02 --- # [[Software Architecture]] ## ๐Ÿ“Œ Brief Summary ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜(Software Architecture)๋Š” ์‹œ์Šคํ…œ์„ ์ถ”๋ก ํ•˜๊ณ  ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ฒญ์‚ฌ์ง„์ด์ž ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ๋“ค์˜ ์ง‘ํ•ฉ์œผ๋กœ, ์†Œํ”„ํŠธ์›จ์–ด ์š”์†Œ์™€ ์ด๋“ค ๊ฐ„์˜ ๊ด€๊ณ„, ๊ทธ๋ฆฌ๊ณ  ํ™˜๊ฒฝ๊ณผ ์„ค๊ณ„ ์›์น™์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค [1, 2]. ์ด๋Š” ์‹œ์Šคํ…œ ๊ตฌํ˜„ ํ›„ ๋ณ€๊ฒฝ ๋น„์šฉ์ด ๋งค์šฐ ๋†’๊ธฐ ๋•Œ๋ฌธ์— ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ ์ดˆ๊ธฐ์— ๋‚ด๋ ค์ ธ์•ผ ํ•˜๋Š” ๊ฐ€์žฅ ์ „๋žต์ ์ด๊ณ  ํ•ต์‹ฌ์ ์ธ ๊ฒฐ์ •์˜ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค [2, 3]. ์ ์ ˆํ•œ ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์„ ์ฑ„ํƒํ•จ์œผ๋กœ์จ ์‹œ์Šคํ…œ์€ ํ™•์žฅ์„ฑ, ์œ ์ง€๋ณด์ˆ˜์„ฑ, ๋ณด์•ˆ ๋ฐ ๋‚ด๊ฒฐํ•จ์„ฑ๊ณผ ๊ฐ™์€ ์ฃผ์š” ํ’ˆ์งˆ ์†์„ฑ(Quality Attributes)์„ ํ™•๋ณดํ•˜๊ณ  ๋น„์ฆˆ๋‹ˆ์Šค ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [4-6]. --- ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜๋Š” ์‹œ์Šคํ…œ์˜ ๊ทผ๋ณธ์ ์ธ ๊ตฌ์กฐ์™€ ์ฒญ์‚ฌ์ง„์„ ์˜๋ฏธํ•˜๋ฉฐ, ์†Œํ”„ํŠธ์›จ์–ด ์š”์†Œ์™€ ๊ทธ๋“ค ๊ฐ„์˜ ๊ด€๊ณ„ ๋ฐ ์†์„ฑ์„ ์ •์˜ํ•˜๋Š” ๊ฑฐ์‹œ์ ์ธ ์„ค๊ณ„ ๊ทœ์œจ์ž…๋‹ˆ๋‹ค[1], [2], [3]. ์ด๋Š” ์‹œ์Šคํ…œ์˜ ํ™•์žฅ์„ฑ, ์œ ์ง€๋ณด์ˆ˜์„ฑ, ์„ฑ๋Šฅ, ๋ณด์•ˆ ๋“ฑ์˜ ํ’ˆ์งˆ ์†์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ผˆ๋Œ€ ์—ญํ• ์„ ํ•˜๋ฉฐ, ๊ฐœ๋ฐœ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ์™€ ์˜์‚ฌ์†Œํ†ต์˜ ๊ธฐ์ค€์ด ๋ฉ๋‹ˆ๋‹ค[4], [5], [6]. ์•„ํ‚คํ…์ฒ˜๋Š” ์ดˆ๊ธฐ ์„ค๊ณ„ ๋‹จ๊ณ„์—์„œ ๊ฒฐ์ •๋˜๊ณ  ํ•œ ๋ฒˆ ๊ตฌํ˜„๋˜๋ฉด ๋ณ€๊ฒฝ ๋น„์šฉ์ด ๋งค์šฐ ๋†’์œผ๋ฏ€๋กœ, ๋น„์ฆˆ๋‹ˆ์Šค ๋ชฉ์ ๊ณผ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„(Trade-off)๋ฅผ ๊ณ ๋ คํ•œ ์‹ ์ค‘ํ•œ ์„ ํƒ์ด ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค[7], [3]. ## ๐Ÿ“– Core Content * **์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜์˜ ๋ณธ์งˆ ๋ฐ ๋ฒ”์œ„** ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜๋Š” ์‹œ์Šคํ…œ์ด ์š”๊ตฌํ•˜๋Š” ๊ธฐ๋Šฅ์  ์š”๊ตฌ์‚ฌํ•ญ๊ณผ ์„ฑ๋Šฅ, ์‹ ๋ขฐ์„ฑ, ํ™•์žฅ์„ฑ, ๋ณด์•ˆ ๋“ฑ์˜ ๋น„๊ธฐ๋Šฅ์  ์š”๊ตฌ์‚ฌํ•ญ(ํ’ˆ์งˆ ์†์„ฑ)์ด ๊ตฌ์กฐ์ ์œผ๋กœ ์–ด๋–ป๊ฒŒ ์‹คํ˜„๋˜๋Š”์ง€์— ์ดˆ์ ์„ ๋งž์ถฅ๋‹ˆ๋‹ค [5, 7]. ์ด๋Š” ๊ฑฐ์‹œ์ ์ธ ์‹œ์Šคํ…œ ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•˜๋Š” ๋ฐ˜๋ฉด, ์†Œํ”„ํŠธ์›จ์–ด ๋””์ž์ธ ํŒจํ„ด์€ ๊ฐœ๋ณ„ ์ปดํฌ๋„ŒํŠธ๋‚˜ ํด๋ž˜์Šค ๋‚ด๋ถ€์˜ ํŠน์ • ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฏธ์‹œ์ ์ธ ์†”๋ฃจ์…˜์ด๋ผ๋Š” ์ ์—์„œ ์ฐจ๋ณ„ํ™”๋ฉ๋‹ˆ๋‹ค [8-10]. ์•„ํ‚คํ…์ฒ˜๋Š” ์‹œ์Šคํ…œ ๊ตฌ์กฐ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ๊ทธ๋Ÿฌํ•œ ๊ตฌ์กฐ์  ์„ ํƒ์„ ์ด๋ˆ ์•„ํ‚คํ…์ฒ˜ ๊ฒฐ์ •(Architectural Decisions)๊ณผ ๊ทธ์— ๋Œ€ํ•œ ๊ทผ๊ฑฐ(Rationale)์˜ ์ง‘ํ•ฉ์„ ๋ชจ๋‘ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค [11]. * **์•„ํ‚คํ…์ฒ˜ ๊ฒฐ์ • ๋ฐ ํ‰๊ฐ€ ๋ฐฉ๋ฒ•๋ก ** ์ ์ ˆํ•œ ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์€ ๋‹จ์ˆœํ•œ ์œ ํ–‰์ด ์•„๋‹ˆ๋ผ ๋ช…ํ™•ํ•œ ํ’ˆ์งˆ ์š”๊ตฌ์‚ฌํ•ญ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์„ ํƒ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [6]. ISO/IEC 25010๊ณผ ๊ฐ™์€ ํ’ˆ์งˆ ๋ชจ๋ธ์„ ์ด์šฉํ•ด ๊ธฐ๋Šฅ ์ ํ•ฉ์„ฑ, ์„ฑ๋Šฅ ํšจ์œจ์„ฑ, ํ˜ธํ™˜์„ฑ ๋“ฑ์„ ์šฐ์„ ์ˆœ์œ„ํ™”ํ•ฉ๋‹ˆ๋‹ค [6, 12]. ์ดํ›„ ATAM(Architecture Tradeoff Analysis Method)๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•๋ก ์„ ํ†ตํ•ด ์‹œ๋‚˜๋ฆฌ์˜ค ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ ๊ตฌ์กฐ์˜ ์žฅ๋‹จ์ (Trade-offs)๊ณผ ๋ฆฌ์Šคํฌ๋ฅผ ๋ฉด๋ฐ€ํžˆ ๋ถ„์„ํ•˜๊ณ , ํ”„๋กœํ† ํƒ€์ดํ•‘์„ ํ†ตํ•ด ์กฐ๊ธฐ ๊ฒ€์ฆ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค [13-15]. ์ด๋Ÿฌํ•œ ๋ชจ๋“  ์„ค๊ณ„ ๊ฒฐ์ • ์‚ฌํ•ญ์€ ADR(Architecture Decision Record)์„ ํ†ตํ•ด ๋งฅ๋ฝ๊ณผ ๋Œ€์•ˆ, ๊ฒฐ๊ณผ๋ฅผ ๊ผผ๊ผผํžˆ ๋ฌธ์„œํ™”ํ•˜์—ฌ ํ–ฅํ›„ ์‹œ์Šคํ…œ์ด ์ง„ํ™”ํ•˜๋”๋ผ๋„ ์˜์‚ฌ๊ฒฐ์ •์˜ ๊ทผ๊ฑฐ๋ฅผ ๋ณด์กดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [16-18]. * **์ฃผ์š” ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด ๋ฐ ํŠน์„ฑ** ํ˜„๋Œ€ ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™์—์„œ ํ™œ์šฉ๋˜๋Š” ๋Œ€ํ‘œ์ ์ธ ํŒจํ„ด์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. * **๊ณ„์ธตํ˜• ์•„ํ‚คํ…์ฒ˜(Layered Pattern):** ํ”„๋ ˆ์  ํ…Œ์ด์…˜, ๋น„์ฆˆ๋‹ˆ์Šค, ๋ฐ์ดํ„ฐ ๊ณ„์ธต ๋“ฑ ์ˆ˜ํ‰์ ์œผ๋กœ ์ฑ…์ž„์„ ๋ถ„๋ฆฌํ•˜์—ฌ ์œ ์ง€๋ณด์ˆ˜์„ฑ๊ณผ ํ…Œ์ŠคํŠธ ์šฉ์ด์„ฑ์„ ๋†’์ด๋Š” ๊ฐ€์žฅ ๊ณ ์ „์ ์ด๊ณ  ์นœ์ˆ™ํ•œ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค [19, 20]. * **ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๋ฐ P2P(Client-Server & P2P):** ์ค‘์•™ ์„œ๋ฒ„๊ฐ€ ์ž์›๊ณผ ๋ฐ์ดํ„ฐ ์ œ์–ด๋ฅผ ์ „๋‹ดํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„์™€ ๋‹ฌ๋ฆฌ, P2P๋Š” ๋ชจ๋“  ๋…ธ๋“œ๊ฐ€ ํด๋ผ์ด์–ธํŠธ์ด์ž ์„œ๋ฒ„ ์—ญํ• ์„ ๋™์‹œ์— ์ˆ˜ํ–‰ํ•˜์—ฌ ์ค‘์•™ ์„œ๋ฒ„์˜ ๋ณ‘๋ชฉ๊ณผ ๋‹จ์ผ ์žฅ์• ์ (SPOF)์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค [21-23]. * **๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜(Microservices Pattern):** ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž‘๊ณ  ๋…๋ฆฝ์ ์œผ๋กœ ๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ๋„๋ฉ”์ธ ์„œ๋น„์Šค๋“ค์˜ ์ง‘ํ•ฉ์œผ๋กœ ๋ถ„ํ• ํ•˜์—ฌ(์ฃผ๋กœ '์„œ๋น„์Šค๋‹น ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค' ์›์น™ ์‚ฌ์šฉ), ๋น ๋ฅธ ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ๊ณผ ๊ทน๋Œ€ํ™”๋œ ์ˆ˜ํ‰์  ํ™•์žฅ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค [24-26]. * **์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜(Event-Driven Pattern):** ์ƒํƒœ ๋ณ€ํ™”(์ด๋ฒคํŠธ)๋ฅผ ๋น„๋™๊ธฐ์ ์œผ๋กœ ์ƒ์‚ฐํ•˜๊ณ  ์†Œ๋น„ํ•˜๋Š” ๊ตฌ์กฐ๋กœ, ๊ทน๋‹จ์ ์œผ๋กœ ๋‚ฎ์€ ๊ฒฐํ•ฉ๋„(Loose Coupling)์™€ ๋Œ€์šฉ๋Ÿ‰ ํŠธ๋ž˜ํ”ฝ์˜ ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ธŒ๋กœ์ปค(Broker)์™€ ๋ฉ”๋””์—์ดํ„ฐ(Mediator) ํ† ํด๋กœ์ง€๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค [27-29]. * **๋งˆ์ดํฌ๋กœ์ปค๋„ ์•„ํ‚คํ…์ฒ˜(Microkernel Pattern):** ์ตœ์†Œํ•œ์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ๋‹ด์€ ์ฝ”์–ด ์‹œ์Šคํ…œ์— ํŠนํ™”๋œ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ชจ๋“ˆ๋“ค์„ ๊ฒฐํ•ฉํ•˜์—ฌ ์œ ์—ฐํ•œ ๊ธฐ๋Šฅ ํ™•์žฅ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค [30, 31]. * **๋„๋ฉ”์ธ ์ค‘์‹ฌ ์•„ํ‚คํ…์ฒ˜(Hexagonal, Clean, Onion):** ์˜์กด์„ฑ ๋ฐฉํ–ฅ์„ ๋‚ด๋ถ€์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์œผ๋กœ ํ–ฅํ•˜๊ฒŒ ๋งŒ๋“ค์–ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, UI ๋“ฑ ๊ธฐ์ˆ ์  ์„ธ๋ถ€์‚ฌํ•ญ์œผ๋กœ๋ถ€ํ„ฐ ํ•ต์‹ฌ ๋„๋ฉ”์ธ์„ ์™„๋ฒฝํžˆ ๊ฒฉ๋ฆฌํ•˜๋Š” ์˜์กด์„ฑ ์—ญ์ „์„ ์‹คํ˜„ํ•ฉ๋‹ˆ๋‹ค [32]. * **๊ณต๊ฐ„ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜(Space-Based Pattern):** ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ณ‘๋ชฉ์„ ์—†์• ๊ธฐ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ ๋‚ด ๋ฐ์ดํ„ฐ ๊ทธ๋ฆฌ๋“œ(In-memory Data Grid)๋ฅผ ๋ถ„์‚ฐ ๊ณต์œ ํ•˜์—ฌ ๋™์‹œ์„ฑ๊ณผ ๋Œ€๊ทœ๋ชจ ๋ถ€ํ•˜๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค [33, 34]. --- * **์•„ํ‚คํ…์ฒ˜์˜ ๋ณธ์งˆ๊ณผ ์›์น™** ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜๋Š” "๋ชจ๋“  ๊ฒƒ์€ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„๋‹ค(Everything is a trade-off)"์™€ "์–ด๋–ป๊ฒŒ(how)๋ณด๋‹ค ์™œ(why)๊ฐ€ ๋” ์ค‘์š”ํ•˜๋‹ค"๋Š” ๋‘ ๊ฐ€์ง€ ๊ทผ๋ณธ ๋ฒ•์น™์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค[7]. ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„๋Š” ๋‹จ์ˆœํ•œ ๊ธฐ์ˆ ์  ํŠธ๋ Œ๋“œ๊ฐ€ ์•„๋‹ˆ๋ผ ์‹œ์Šคํ…œ์ด ํ•ด๊ฒฐํ•ด์•ผ ํ•  ๋น„์ฆˆ๋‹ˆ์Šค ๋ชฉ์ , ๋ถ€ํ•˜ ํ”„๋กœํ•„, ๊ทธ๋ฆฌ๊ณ  ISO/IEC 25010๊ณผ ๊ฐ™์€ ํ‘œ์ค€ ๊ธฐ๋ฐ˜์˜ ํ’ˆ์งˆ ์š”๊ตฌ์‚ฌํ•ญ(์„ฑ๋Šฅ ํšจ์œจ์„ฑ, ํ˜ธํ™˜์„ฑ, ์ƒํ˜ธ์ž‘์šฉ ๋Šฅ๋ ฅ ๋“ฑ)์— ๋งž์ถฐ ๊ฒฐ์ •๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค[8], [9]. * **์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด(Architecture Pattern) vs ๋””์ž์ธ ํŒจํ„ด(Design Pattern)** ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด๊ณผ ๋””์ž์ธ ํŒจํ„ด์€ ํ”ํžˆ ํ˜ผ์šฉ๋˜๋‚˜ ์ ์šฉ ๋ฒ”์œ„๊ฐ€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค, ๊ณ„์ธตํ˜•, ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜ ๋“ฑ ์ „์ฒด ์‹œ์Šคํ…œ์˜ ๊ตฌ์กฐ์™€ ์ปดํฌ๋„ŒํŠธ ๊ฐ„ ์ƒํ˜ธ์ž‘์šฉ์„ ๋‹ค๋ฃจ๋Š” ๊ฑฐ์‹œ์ (Macro-level) ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค[10], [11], [3]. ๋ฐ˜๋ฉด, ๋””์ž์ธ ํŒจํ„ด(์˜ˆ: ์‹ฑ๊ธ€ํ†ค, ํŒฉํ† ๋ฆฌ ํŒจํ„ด)์€ ๋‹จ์ผ ๋ชจ๋“ˆ์ด๋‚˜ ํด๋ž˜์Šค ๋‚ด์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฐ˜๋ณต์ ์ธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฏธ์‹œ์ (Micro-level) ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค[12], [3]. * **ํ•ต์‹ฌ ์•„ํ‚คํ…์ฒ˜ ํ™œ๋™ (Core Architecture Activities)** ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„๋Š” ๋„ค ๊ฐ€์ง€ ๋ฐ˜๋ณต์ ์ธ ํ•ต์‹ฌ ํ™œ๋™์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค[13]. ์š”๊ตฌ์‚ฌํ•ญ์„ ์ˆ˜์ง‘ํ•˜๊ณ  ์•„ํ‚คํ…์ฒ˜์— ์œ ์˜๋ฏธํ•œ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์š”์†Œ๋ฅผ ํŒŒ์•…ํ•˜๋Š” '๋ถ„์„(Analysis)', ๋„์ถœ๋œ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ฐ”ํƒ•์œผ๋กœ ์„ค๊ณ„๋ฅผ ์ฐฝ์กฐํ•˜๋Š” 'ํ•ฉ์„ฑ/์„ค๊ณ„(Synthesis)', ATAM(Architecture Tradeoff Analysis Method) ๋“ฑ์˜ ๊ธฐ๋ฒ•์„ ์ด์šฉํ•ด ์„ค๊ณ„๊ฐ€ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š”์ง€ ํ‰๊ฐ€ํ•˜๋Š” 'ํ‰๊ฐ€(Evaluation)', ๊ทธ๋ฆฌ๊ณ  ํ™˜๊ฒฝ ๋ณ€ํ™”์— ๋งž์ถฐ ์‹œ์Šคํ…œ์„ ์œ ์ง€๋ณด์ˆ˜ํ•˜๊ณ  ์ ์‘์‹œํ‚ค๋Š” '์ง„ํ™”(Evolution)'์ž…๋‹ˆ๋‹ค[13], [14], [15]. * **์กฐ์ง ๊ตฌ์กฐ์™€ ์ฝ˜์›จ์ด์˜ ๋ฒ•์น™ (Conway's Law)** ์•„ํ‚คํ…์ฒ˜ ๊ฒฐ์ •์€ ์กฐ์ง์˜ ํ˜•ํƒœ์™€ ๋ถˆ๊ฐ€๋ถ„์˜ ๊ด€๊ณ„๋ฅผ ๋งบ์Šต๋‹ˆ๋‹ค. "์‹œ์Šคํ…œ ์„ค๊ณ„๋Š” ์กฐ์ง์˜ ํ†ต์‹  ๊ตฌ์กฐ๋ฅผ ๋ชจ๋ฐฉํ•˜๊ฒŒ ๋œ๋‹ค"๋Š” ์ฝ˜์›จ์ด์˜ ๋ฒ•์น™์— ๋”ฐ๋ผ, ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜๋Š” ๊ธฐ์ˆ ์  ์š”๊ตฌ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ฐœ๋ฐœ ํŒ€์˜ ๊ทœ๋ชจ, ์—ญ๋Ÿ‰, DevOps ์„ฑ์ˆ™๋„ ๋“ฑ ์กฐ์ง์  ๋งฅ๋ฝ๊ณผ ์™„๋ฒฝํžˆ ๋ถ€ํ•ฉํ•ด์•ผ ์„ฑ๊ณต์ ์œผ๋กœ ์œ ์ง€๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค[16], [17]. ## โš–๏ธ Trade-offs & Caveats ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜ ๊ฒฐ์ •์—๋Š” "๋ชจ๋“  ๊ฒƒ์€ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„(Everything is a trade-off)"๋ผ๋Š” ์ œ1๋ฒ•์น™์ด ์กด์žฌํ•˜๋ฉฐ ์™„๋ฒฝํ•œ ์•„ํ‚คํ…์ฒ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค [3, 14]. * **๋ถ„์‚ฐ ์‹œ์Šคํ…œ์˜ ๋ณต์žก์„ฑ๊ณผ ๋น„์šฉ:** ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค(MSA)๋‚˜ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜๋Š” ๋›ฐ์–ด๋‚œ ์ž์œจ์„ฑ๊ณผ ํ™•์žฅ์„ฑ์„ ์ฃผ์ง€๋งŒ, ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ(Saga ํŒจํ„ด ๋“ฑ ์ ์šฉ ํ•„์š”), ๋„คํŠธ์›Œํฌ ์ง€์—ฐ, ๋น„๋™๊ธฐ ๋””๋ฒ„๊น…, ๋‹ค์ค‘ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ์ตœ์ข… ์ผ๊ด€์„ฑ(Eventual Consistency) ๋“ฑ ๋ง‰๋Œ€ํ•œ ์šด์˜ ๋ฐ ์„ค๊ณ„ ๋ณต์žก์„ฑ์„ ์•ผ๊ธฐํ•ฉ๋‹ˆ๋‹ค [35-37]. * **์„œ๋ฒ„๋ฆฌ์Šค(Serverless)์˜ ์ œ์•ฝ:** ์„œ๋ฒ„๋ฆฌ์Šค๋Š” ์ธํ”„๋ผ ๊ด€๋ฆฌ ๋ถ€๋‹ด์„ ์ค„์ด๊ณ  ์‚ฌ์šฉ๋Ÿ‰๋งŒํผ๋งŒ ๋น„์šฉ์„ ์ง€๋ถˆํ•˜์ง€๋งŒ, ๋ฒค๋” ์ข…์†(Vendor Lock-in) ๋ฌธ์ œ์™€ ํ•จ๊ป˜ ์ผ์ • ์‹œ๊ฐ„ ๋น„ํ™œ์„ฑํ™” ์‹œ ๋ฐœ์ƒํ•˜๋Š” ์ฝœ๋“œ ์Šคํƒ€ํŠธ(Cold Start) ์ง€์—ฐ ์‹œ๊ฐ„ ๋ฌธ์ œ๊ฐ€ ์žˆ์–ด ์‹ค์‹œ๊ฐ„ ์‘๋‹ต์ด ํ•„์ˆ˜์ ์ธ ์„œ๋น„์Šค์—๋Š” ์น˜๋ช…์ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [38-40]. * **์˜ค๋ฒ„ ์—”์ง€๋‹ˆ์–ด๋ง์˜ ์œ„ํ—˜:** ์ž‘์€ ๊ทœ๋ชจ์˜ ํŒ€์ด๋‚˜ ๋‹จ์ˆœํ•œ CRUD ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํŠธ๋ Œ๋“œ๋ผ๋Š” ์ด์œ ๋งŒ์œผ๋กœ MSA๋ฅผ ๋„์ž…ํ•˜๋ฉด ์˜คํžˆ๋ ค ์ƒ์‚ฐ์„ฑ์ด ํ•˜๋ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [41, 42]. ์ด ๊ฒฝ์šฐ ์ฒ ์ €ํžˆ ๋ชจ๋“ˆํ™”๋œ ๋‹จ์ผ ๋ฐฐํฌ ๋‹จ์œ„์ธ ๋ชจ๋“ˆํ˜• ๋ชจ๋†€๋ฆฌ์Šค(Modular Monolith)๋ฅผ ์ฑ„ํƒํ•˜๋Š” ๊ฒƒ์ด ํ™•์žฅ์„ฑ์„ ์—ด์–ด๋‘๋ฉด์„œ ์šด์˜ ๋ณต์žก๋„๋ฅผ ๋‚ฎ์ถ”๋Š” ํ›Œ๋ฅญํ•œ ๋Œ€์•ˆ์ด ๋ฉ๋‹ˆ๋‹ค [43, 44]. * **์•„ํ‚คํ…์ฒ˜ ๋ถ€์‹(Erosion):** ์ดˆ๊ธฐ ์„ค๊ณ„์™€ ์‹ค์ œ ๊ตฌํ˜„ ์ฝ”๋“œ ์‚ฌ์ด์— ๊ดด๋ฆฌ๊ฐ€ ์ƒ๊ธฐ๋ฉฐ ๊ธฐ์ˆ  ๋ถ€์ฑ„๊ฐ€ ๋ˆ„์ ๋˜๋Š” ์•„ํ‚คํ…์ฒ˜ ๋ถ€์‹ ํ˜„์ƒ์ด ์ผ์–ด๋‚  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์ง€์†์ ์ธ ์ปดํ”Œ๋ผ์ด์–ธ์Šค ์ฒดํฌ์™€ ์—„๊ฒฉํ•œ ADR ๊ด€๋ฆฌ๊ฐ€ ์š”๊ตฌ๋ฉ๋‹ˆ๋‹ค [45]. --- * **์„ฑ๋Šฅ(Performance) vs ์œ ์—ฐ์„ฑ ๋ฐ ํ™•์žฅ์„ฑ(Flexibility & Scalability)** ๋ชจ๋†€๋ฆฌ์‹์ด๋‚˜ ๊ณ„์ธตํ˜•(Layered) ์•„ํ‚คํ…์ฒ˜๋Š” ์ดˆ๊ธฐ ๊ฐœ๋ฐœ์ด ๋น ๋ฅด๊ณ  ํ•˜๋‚˜์˜ ์ฝ”๋“œ๋ฒ ์ด์Šค์—์„œ ๊ด€๋ฆฌ๋˜๋ฏ€๋กœ ํŠน์ • ํ™˜๊ฒฝ์—์„œ๋Š” ์„ฑ๋Šฅ์  ์ด์ ์ด ์žˆ์œผ๋‚˜, ์‹œ์Šคํ…œ์ด ์ปค์งˆ์ˆ˜๋ก ์žฆ์€ ๋ณ€๊ฒฝ๊ณผ ๋ถ€๋ถ„์ ์ธ ํ™•์žฅ์ด ๋ถˆ๊ฐ€๋Šฅํ•ด์ง€๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค[18], [19]. ๋ฐ˜๋Œ€๋กœ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜(MSA)๋‚˜ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜(EDA)๋Š” ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ์œ ์—ฐ์„ฑ๊ณผ ์ˆ˜ํ‰์  ํ™•์žฅ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•˜์ง€๋งŒ, ์„œ๋น„์Šค ๊ฐ„ ๋„คํŠธ์›Œํฌ ํ†ต์‹  ์˜ค๋ฒ„ํ—ค๋“œ, ๋ณต์žกํ•œ ๋””๋ฒ„๊น…, ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ(Eventual Consistency) ๊ด€๋ฆฌ๋ผ๋Š” ๋ง‰๋Œ€ํ•œ ์šด์˜ ๋ณต์žก์„ฑ ๋น„์šฉ์„ ์น˜๋Ÿฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค[20], [21], [22]. * **์•„ํ‚คํ…์ฒ˜ ์นจ์‹ (Architecture Erosion)** ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์ˆ˜๋ช… ์ฃผ๊ธฐ๊ฐ€ ์ง„ํ–‰๋จ์— ๋”ฐ๋ผ, ์˜๋„ํ–ˆ๋˜ ์•„ํ‚คํ…์ฒ˜์™€ ์‹ค์ œ๋กœ ๊ตฌํ˜„๋œ ์•„ํ‚คํ…์ฒ˜ ๊ฐ„์˜ ๊ฒฉ์ฐจ๊ฐ€ ๋ฒŒ์–ด์ง€๋Š” '์•„ํ‚คํ…์ฒ˜ ์นจ์‹'์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค[23]. ์ด๋Š” ๊ธฐ์ˆ  ๋ถ€์ฑ„์˜ ์ถ•์ , ์•„ํ‚คํ…์ฒ˜ ๊ทœ์น™ ์œ„๋ฐ˜, ์ง€์‹์˜ ์ฆ๋ฐœ ๋“ฑ์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋ฉฐ, ๊ฒฐ๊ณผ์ ์œผ๋กœ ์‹œ์Šคํ…œ์˜ ์„ฑ๋Šฅ์„ ์ €ํ•˜์‹œํ‚ค๊ณ  ์œ ์ง€๋ณด์ˆ˜ ๋น„์šฉ์„ ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค[24]. * **์˜์‚ฌ๊ฒฐ์ •์˜ ์ง€์—ฐ๊ณผ ๋ถ„์„ ๋งˆ๋น„ (Analysis Paralysis)** ์ž˜๋ชป๋œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์„ ํƒํ•  ๊ฒƒ์— ๋Œ€ํ•œ ๋‘๋ ค์›€์œผ๋กœ ์ธํ•ด ์„ค๊ณ„ ๊ฒฐ์ •์„ ๋ฏธ๋ฃจ๋Š” ์•ˆํ‹ฐํŒจํ„ด(Anti-pattern)์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐœ๋ฐœ ์ง„ํ–‰์„ ๋ฐฉํ•ดํ•˜๋ฏ€๋กœ, ์ ์ ˆํ•œ ํ”ผ๋“œ๋ฐฑ ์ˆ˜์šฉ๊ณผ ํ•จ๊ป˜ "๋งˆ์ง€๋ง‰ ์ฑ…์ž„ ์ˆœ๊ฐ„(last responsible moment)"์— ๊ฒฐ์ •์„ ๋‚ด๋ฆฌ๊ณ , ํ”„๋กœํ† ํƒ€์ดํ•‘์„ ํ†ตํ•ด ์กฐ๊ธฐ์— ๋ฆฌ์Šคํฌ๋ฅผ ๊ฒ€์ฆํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค[25], [26]. ## ๐Ÿ”— Knowledge Connections ### Related Concepts #### [์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„ ์‚ฌ์ƒ ๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„] - [[๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜ (Microservices Architecture)]] - ์—ฐ๊ฒฐ ์ด์œ : ํ˜„๋Œ€ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ๊ธ‰ ํ™•์žฅ์„ฑ๊ณผ ์• ์ž์ผํ•œ ์กฐ์ง ๊ตฌ์กฐ๋ฅผ ์ง€์›ํ•˜๋Š” ํ•ต์‹ฌ ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์ž…๋‹ˆ๋‹ค [46, 47]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ๋…๋ฆฝ์ ์ธ ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์„ฑ, ๋„๋ฉ”์ธ ๋ถ„๋ฆฌ, ์„œ๋น„์Šค ๊ฐ„ ๋น„๋™๊ธฐ ๋ฉ”์‹œ์ง• ๊ธฐ๋ฐ˜ ํ˜‘์—…, ๊ทธ๋ฆฌ๊ณ  ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์„€์‹œ ๋ฐ API ๊ฒŒ์ดํŠธ์›จ์ด ๋“ฑ์˜ ๋ถ„์‚ฐ ์ปดํฌ๋„ŒํŠธ ์ „๋žต. - [[์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜ (Event-Driven Architecture)]] - ์—ฐ๊ฒฐ ์ด์œ : ์‹œ์Šคํ…œ์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๊ทนํ•œ์œผ๋กœ ๋‚ฎ์ถ”๊ณ  ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆฌ๋ฐ๊ณผ ๋†’์€ ๋™์‹œ์„ฑ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํ™œ์šฉ๋˜๋Š” ์•„ํ‚คํ…์ฒ˜์ž…๋‹ˆ๋‹ค [28, 48]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ๋ธŒ๋กœ์ปค(Choreography) ๋ฐฉ์‹๊ณผ ๋ฉ”๋””์—์ดํ„ฐ(Orchestration) ๋ฐฉ์‹์˜ ํ†ต์ œ ์ˆ˜์ค€ ์ฐจ์ด, ํ(Queues)์™€ ์ŠคํŠธ๋ฆผ(Streams)์„ ํ™œ์šฉํ•œ ์ด๋ฒคํŠธ ๊ด€๋ฆฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜๊ณผ ์ƒํƒœ ํšŒ๋ณต. - [[ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜ (Hexagonal Architecture / Ports and Adapters)]] - ์—ฐ๊ฒฐ ์ด์œ : ๋น„์ฆˆ๋‹ˆ์Šค ํ•ต์‹ฌ ๋กœ์ง์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๊ฐ™์€ ๊ธฐ์ˆ ์  ์„ธ๋ถ€์‚ฌํ•ญ์œผ๋กœ๋ถ€ํ„ฐ ์™„๋ฒฝํžˆ ๋ณดํ˜ธํ•˜๋Š” ์•„ํ‚คํ…์ฒ˜ ์ง€์นจ์ž…๋‹ˆ๋‹ค [32, 49]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ํฌํŠธ(Port)์™€ ์–ด๋Œ‘ํ„ฐ(Adapter)๋ฅผ ์ด์šฉํ•œ ์˜์กด์„ฑ ์—ญ์ „ ์›์น™, ๋›ฐ์–ด๋‚œ ํ…Œ์ŠคํŠธ ์šฉ์ด์„ฑ, ๊ทธ๋ฆฌ๊ณ  ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜ ๋ฐ ์–ด๋‹ˆ์–ธ ์•„ํ‚คํ…์ฒ˜์™€์˜ ๊ตฌ์กฐ์  ์ƒํ˜ธ์ž‘์šฉ. #### [์•„ํ‚คํ…์ฒ˜ ์˜์‚ฌ๊ฒฐ์ • ๋ฐ ๊ฒ€์ฆ ๋„๊ตฌ] - [[ATAM (Architecture Tradeoff Analysis Method)]] - ์—ฐ๊ฒฐ ์ด์œ : ์•„ํ‚คํ…์ฒ˜๊ฐ€ ํ’ˆ์งˆ ์š”๊ตฌ์‚ฌํ•ญ์— ์–ผ๋งˆ๋‚˜ ์ž˜ ๋ถ€ํ•ฉํ•˜๋Š”์ง€ ํ‰๊ฐ€ํ•˜๊ณ  ํŠธ๋ ˆ์ด๋“œ์˜คํ”„๋ฅผ ์ฒด๊ณ„ํ™”ํ•˜๋Š” ํ‰๊ฐ€ ๋ฐฉ๋ฒ•๋ก ์ž…๋‹ˆ๋‹ค [13, 14]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์‹œ์Šคํ…œ์˜ ๋ฏผ๊ฐ๋„์™€ ์ž ์žฌ์  ๋ฆฌ์Šคํฌ๋ฅผ ์‹œ๋‚˜๋ฆฌ์˜ค ๊ธฐ๋ฐ˜์œผ๋กœ ๋„์ถœํ•˜์—ฌ, ์•„ํ‚คํ…์ฒ˜ ๊ฒฐ์ •์ด ์กฐ์ง์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋ชฉํ‘œ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์„ ๊ฐ๊ด€ํ™”ํ•˜๋Š” ์ ˆ์ฐจ. - [[ADR (Architecture Decision Records)]] - ์—ฐ๊ฒฐ ์ด์œ : ์•„ํ‚คํ…์ฒ˜ ๊ฒฐ์ • ์‚ฌํ•ญ์„ ๋ฌธ์„œํ™”ํ•˜์—ฌ ์‹œ์Šคํ…œ ๊ตฌ์กฐ์˜ ์œ ์ง€๋ณด์ˆ˜์„ฑ๊ณผ ๋งฅ๋ฝ ๋ณด์กด์„ ์ง€์›ํ•˜๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค [16, 17]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์˜์‚ฌ๊ฒฐ์ • ๋‹น์‹œ์˜ ๊ธฐ์ˆ ์ ยท๋น„์ฆˆ๋‹ˆ์Šค์  ๋ฐฐ๊ฒฝ, ๊ฑฐ์ ˆ๋œ ๋Œ€์•ˆ ๋ฐ ์˜ˆ์ƒ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋กํ•จ์œผ๋กœ์จ, ์กฐ์ง์˜ ๊ตฌ์กฐ ๋ณ€๊ฒฝ์ด๋‚˜ ์ธ๋ ฅ ๊ต์ฒด ์‹œ์—๋„ '์„ค๊ณ„ ์˜๋„'๊ฐ€ ๋ณ€์งˆ๋˜๋Š” ์•„ํ‚คํ…์ฒ˜ ๋ถ€์‹(Erosion)์„ ๋ฐฉ์ง€ํ•˜๋Š” ์›๋ฆฌ. ### Deeper Research Questions - ๋ถ„์‚ฐ ์•„ํ‚คํ…์ฒ˜(๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค) ํ™˜๊ฒฝ์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๊ฐœ๋ณ„ ๋ถ„๋ฆฌ๋จ์— ๋”ฐ๋ผ ๋ฐœ์ƒํ•˜๋Š” ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜ ๋ฐ ์ตœ์ข… ์ผ๊ด€์„ฑ(Eventual Consistency) ๋ฌธ์ œ๋ฅผ Saga ํŒจํ„ด๊ณผ CQRS๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์–ด๋–ป๊ฒŒ ํšจ๊ณผ์ ์œผ๋กœ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€? [28, 36] - ์ฝ˜์›จ์ด์˜ ๋ฒ•์น™(Conway's Law)์ด ์กฐ์ง ๊ตฌ์กฐ(ํŒ€ ํฌ๊ธฐ, ๋ฐ๋ธŒ์˜ต์Šค ์ˆ™๋ จ๋„)์™€ ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด ๊ฒฐ์ •์— ์–ด๋– ํ•œ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋ฉฐ, ์„ฑ๊ณต์ ์ธ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์ด์ „์„ ์œ„ํ•ด ์„ ํ–‰๋˜์–ด์•ผ ํ•  ์กฐ์ง์  ๋ณ€ํ™”๋Š” ๋ฌด์—‡์ธ๊ฐ€? [42, 50] - ๋Œ€๊ทœ๋ชจ ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์‹œ์Šคํ…œ์—์„œ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜์˜ ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆฌ๋ฐ(์˜ˆ: Kafka)๊ณผ ๊ณต๊ฐ„ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜(Space-Based)์˜ ์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ ๊ทธ๋ฆฌ๋“œ(IMDG) ๋ฐฉ์‹์„ ๋ณ‘ํ•ฉ(Hybrid)ํ•˜์—ฌ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๋Š” ์ „๋žต๊ณผ ๊ทธ ํ•œ๊ณ„๋Š” ๋ฌด์—‡์ธ๊ฐ€? [34, 51, 52] - ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜ ๋˜๋Š” ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜์˜ ์˜์กด์„ฑ ๊ทœ์น™์ด ์ดˆ๊ธฐ ๊ฐœ๋ฐœ ๋น„์šฉ์„ ์ƒ์Šน์‹œํ‚ด์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์žฅ๊ธฐ ์œ ์ง€๋ณด์ˆ˜ ๋ฐ ๋ณด์•ˆ ๊ฒฝ๊ณ„(Security Boundaries) ํ˜•์„ฑ์—์„œ ์–ป๋Š” ํŠธ๋ ˆ์ด๋“œ์˜คํ”„์˜ ๊ฒฝ์ œ์  ๊ฐ€์น˜๋Š” ์–ด๋–ป๊ฒŒ ์ฆ๋ช…ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€? [32, 53, 54] - ๋นˆ๋ฒˆํžˆ ๋ณ€๋™ํ•˜๋Š” ๋ถ€ํ•˜(Burst Workload)๋ฅผ ๊ฐ€์ง„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•ด, ์ฝœ๋“œ ์Šคํƒ€ํŠธ๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•œ ์„œ๋ฒ„๋ฆฌ์Šค(Serverless)์™€ ๋ชจ๋“ˆํ˜• ๋ชจ๋†€๋ฆฌ์Šค(Modular Monolith)๋ฅผ ํ˜ผํ•ฉ ์ ์šฉํ•˜๋Š” ์ „๋žต์  ๋ถ„๊ธฐ์ (Tipping Point)์€ ์–ด๋””์ธ๊ฐ€? [55-60] ### Practical Application Contexts - **Implementation:** ๋น„์ฆˆ๋‹ˆ์Šค ํ•ต์‹ฌ ๋กœ์ง๊ณผ ์ธํ”„๋ผ์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ๋ฒ ์ด์Šค ๊ตฌํ˜„ ์‹œ ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜์˜ ํฌํŠธ(์ธํ„ฐํŽ˜์ด์Šค)์™€ ์–ด๋Œ‘ํ„ฐ๋ฅผ ์ ์šฉํ•˜์—ฌ ๋…๋ฆฝ์ ์ธ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ฒŒ ์„ค๊ณ„ํ•จ [49, 61, 62]. - **System Design:** C4 ๋ชจ๋ธ ๋“ฑ ๊ฐ€๋ฒผ์šด ๋‹ค์ด์–ด๊ทธ๋žจ ๋„๊ตฌ๋ฅผ ํ†ตํ•ด ๊ฐ ์ปดํฌ๋„ŒํŠธ ๊ฐ„ ๊ด€๊ณ„์™€ ์ œ์•ฝ์‚ฌํ•ญ์„ ์‹œ๊ฐํ™”ํ•˜๊ณ , ATAM์„ ํ†ตํ•ด ๊ทน๋‹จ์ ์ธ ๋กœ๋“œ(์˜ˆ: 10๋ถ„ ๋‚ด ์‚ฌ์šฉ์ž ๋‘ ๋ฐฐ ์ฆ๊ฐ€) ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋Œ€ํ•œ ์‹œ์Šคํ…œ ๋ณ‘๋ชฉ์„ ํ‰๊ฐ€ ํ›„ ์ ์ ˆํ•œ ๋ถ„์‚ฐ ํŒจํ„ด์„ ์ ์šฉ [13, 14, 63]. - **Operation / Maintenance:** ์„œํ‚ท ๋ธŒ๋ ˆ์ด์ปค(Circuit Breaker) ํŒจํ„ด์„ ๋„์ž…ํ•ด ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ํ†ต์‹  ์ค‘ ๋ฐœ์ƒํ•˜๋Š” ์—ฐ์‡„ ์žฅ์• ๋ฅผ ๊ฒฉ๋ฆฌํ•˜๊ณ , ADR์„ ์œ„ํ‚ค์— ๋ณด๊ด€ํ•ด ์ƒˆ๋กญ๊ฒŒ ํ•ฉ๋ฅ˜ํ•œ ๋ฐ๋ธŒ์˜ต์Šค ํŒ€์›๋“ค์˜ ์˜จ๋ณด๋”ฉ ์†๋„๋ฅผ ๋†’์ž„ [16, 37, 64]. - **Learning Path:** ๋‹จ์ˆœํ•œ ๊ณ„์ธตํ˜• ์•„ํ‚คํ…์ฒ˜(N-Tier)๋กœ ์‹œ์ž‘ํ•˜์—ฌ ์‹œ์Šคํ…œ ์„ค๊ณ„์˜ ๊ธฐ์ดˆ์™€ ๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ๋ฅผ ๋ฐฐ์šด ๋’ค, ์ ์ง„์ ์œผ๋กœ ๋„๋ฉ”์ธ ์ฃผ๋„ ์„ค๊ณ„(DDD)์™€ ๋น„๋™๊ธฐ ๋ฉ”์‹œ์ง€ ํŒจ์‹ฑ(EDA), ์ตœ์ข…์ ์œผ๋กœ ๋ถ„์‚ฐ ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ํŒจํ„ด(MSA, Serverless) ์ˆœ์œผ๋กœ ํ™•์žฅ ํ•™์Šต [44, 65]. - **My Project Relevance:** ๊ธฐํ•œ๊ณผ ์ž์›์ด ํ•œ์ •๋œ ์ดˆ๊ธฐ ์Šคํƒ€ํŠธ์—… MVP ํ”„๋กœ์ ํŠธ์— ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ๋ฌด๋ฆฌํ•˜๊ฒŒ ๋„์ž…ํ•˜๊ธฐ๋ณด๋‹ค, ์šฐ์„  ๋ชจ๋“ˆํ˜• ๋ชจ๋†€๋ฆฌ์Šค ํ˜น์€ ๋‹จ์ผ ์„œ๋ฒ„๋ฆฌ์Šค ๊ธฐ๋Šฅ์œผ๋กœ ๋น ๋ฅด๊ฒŒ ์‹œ์žฅ ๊ฒ€์ฆ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ํ–ฅํ›„ ํ™•์žฅ์„ ๋Œ€๋น„ํ•œ ๋ชจ๋“ˆ ๋ถ„๋ฆฌ(Clean Architecture ์ ์šฉ)๋ฅผ ์ˆ˜ํ–‰ํ•จ [66, 67]. ### Adjacent Topics - [[๋„๋ฉ”์ธ ์ฃผ๋„ ์„ค๊ณ„ (Domain-Driven Design, DDD)]] - ํ™•์žฅ ๋ฐฉํ–ฅ: ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ํŒจํ„ด์—์„œ ๊ฐ ์„œ๋น„์Šค๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ์ฑ…์ž„์„ ๊ฒฉ๋ฆฌํ•˜๋Š” ๋…ผ๋ฆฌ์  ๊ฒฝ๊ณ„(Bounded Context)๋ฅผ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ๋ชจ๋ธ๋ง ๊ธฐ๋ฒ•์˜ ์—ฐ๊ณ„ ํƒ๊ตฌ [26]. - [[์†Œํ”„ํŠธ์›จ์–ด ๋””์ž์ธ ํŒจํ„ด (Software Design Patterns)]] - ํ™•์žฅ ๋ฐฉํ–ฅ: ์ „์ฒด ์•„ํ‚คํ…์ฒ˜ ์ˆ˜์ค€์ด ์•„๋‹ˆ๋ผ ๊ฐ ๊ณ„์ธต์ด๋‚˜ ๋ชจ๋“ˆ ๋‚ด๋ถ€์—์„œ ๋ฐ˜๋ณต๋˜๋Š” ์ฝ”๋”ฉ ์ˆ˜์ค€์˜ ๊ตฌํ˜„ ๋ฌธ์ œ(๊ฐ์ฒด ์ƒ์„ฑ, ๊ตฌ์กฐ, ํ–‰์œ„)๋ฅผ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐํ•˜๋Š” ์›๋ฆฌ ์ดํ•ด [8]. --- *Last updated: 2026-05-02* --- ### Related Concepts #### [๊ด€๊ณ„ ์œ ํ˜• A: ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„ ๋ฐ ํ‰๊ฐ€ ํ”„๋ ˆ์ž„์›Œํฌ] - [[ATAM (Architecture Tradeoff Analysis Method)]] - ์—ฐ๊ฒฐ ์ด์œ : ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‹œ์Šคํ…œ์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋ชฉํ‘œ์™€ ํ’ˆ์งˆ ์†์„ฑ์— ๋น„์ถ”์–ด ์ฒด๊ณ„์ ์œผ๋กœ ํ‰๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด SEI์—์„œ ๊ฐœ๋ฐœํ•œ ๋ฐฉ๋ฒ•๋ก ์ž…๋‹ˆ๋‹ค[27], [28]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์ถ”์ƒ์ ์ธ ์š”๊ตฌ์‚ฌํ•ญ ๋Œ€์‹  ๊ตฌ์ฒด์ ์ธ '์‹œ๋‚˜๋ฆฌ์˜ค'๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์•„ํ‚คํ…์ฒ˜์˜ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„(Trade-offs)์™€ ๋ฏผ๊ฐ์ (Sensitivity points), ์ž ์žฌ์  ๋ฆฌ์Šคํฌ๋ฅผ ๋ถ„์„ํ•˜๋Š” ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค[27], [28]. - [[ADR (Architecture Decision Record)]] - ์—ฐ๊ฒฐ ์ด์œ : ๋ณต์žกํ•œ ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ์—์„œ ์•„ํ‚คํ…์ฒ˜์— ๊ด€ํ•œ ์ฃผ์š” ๊ฒฐ์ • ์‚ฌํ•ญ์„ ๋ฌธ์„œํ™”ํ•˜๋Š” ํ•ต์‹ฌ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค[29], [30]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์ดˆ๊ธฐ ๊ฒฐ์ •์˜ ๋งฅ๋ฝ, ์„ ํƒ ์ด์œ , ๋Œ€์•ˆ ๋ฐ ๋ฆฌ์Šคํฌ๋ฅผ ๋ช…ํ™•ํžˆ ๊ธฐ๋กํ•˜์—ฌ ์‹œ๊ฐ„์ด ์ง€๋‚˜๊ฑฐ๋‚˜ ํŒ€์›์ด ๋ณ€๊ฒฝ๋˜๋”๋ผ๋„ ์•„ํ‚คํ…์ฒ˜์˜ ๊ฐœ๋…์  ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•˜๊ณ  ์•„ํ‚คํ…์ฒ˜ ์นจ์‹์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค[25], [29]. #### [๊ด€๊ณ„ ์œ ํ˜• B: ์ฃผ์š” ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด ์œ ํ˜•] - [[๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜ (Microservices Architecture)]] - ์—ฐ๊ฒฐ ์ด์œ : ๊ฑฐ๋Œ€ํ•œ ๋ชจ๋†€๋ฆฌ์‹ ๊ตฌ์กฐ๋ฅผ ๋น„์ฆˆ๋‹ˆ์Šค ๋„๋ฉ”์ธ๋ณ„๋กœ ์ž‘๊ณ  ๋…๋ฆฝ์ ์ธ ์„œ๋น„์Šค๋กœ ๋ถ„ํ• ํ•˜๋Š” ํ˜„๋Œ€ ์†Œํ”„ํŠธ์›จ์–ด ์ƒํƒœ๊ณ„์˜ ๋Œ€ํ‘œ์  ํŒจํ„ด์ž…๋‹ˆ๋‹ค[31], [32]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ๋…๋ฆฝ์ ์ธ ๋ฐฐํฌ ๋ฐ ํ™•์žฅ์„ฑ์˜ ์ด์ ๊ณผ ํ•จ๊ป˜, ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ(Saga ํŒจํ„ด ๋“ฑ) ๋ฐ ์„œ๋น„์Šค ๊ฐ„ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๋Š” ๊ณ ๊ธ‰ ์„ค๊ณ„ ์›์น™์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค[33], [22]. - [[์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜ (Event-Driven Architecture)]] - ์—ฐ๊ฒฐ ์ด์œ : ์ƒํƒœ ๋ณ€ํ™”(์ด๋ฒคํŠธ)๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋น„๋™๊ธฐ์ ์œผ๋กœ ์ƒํ˜ธ์ž‘์šฉํ•˜์—ฌ ์‹œ์Šคํ…œ ์ฒ˜๋ฆฌ๋Ÿ‰๊ณผ ์‹ค์‹œ๊ฐ„ ๋ฐ˜์‘์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•˜๋Š” ํŒจํ„ด์ž…๋‹ˆ๋‹ค[34], [35], [22]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์ปดํฌ๋„ŒํŠธ ๊ฐ„ ๊ทน๋‹จ์ ์ธ ๋А์Šจํ•œ ๊ฒฐํ•ฉ(Loose Coupling)์„ ์ด๋ฃจ๋Š” ๋ฐฉ์‹๊ณผ, ์ด๋ฒคํŠธ ํ๋ฆ„์„ ์ œ์–ดํ•˜๋Š” ๋ธŒ๋กœ์ปค(Broker) ๋ฐ ๋ฉ”๋””์—์ดํ„ฐ(Mediator) ํ† ํด๋กœ์ง€์˜ ์„ค๊ณ„์ƒ ์ฐจ์ด๋ฅผ ๊นŠ์ด ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค[36], [37]. ### Deeper Research Questions - ๋ชจ๋†€๋ฆฌ์‹ ์•„ํ‚คํ…์ฒ˜์—์„œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋กœ์˜ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์‹œ ๋ฐœ์ƒํ•˜๋Š” ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ์˜ '์ตœ์ข… ์ผ๊ด€์„ฑ(Eventual Consistency)' ๋ฌธ์ œ๋ฅผ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด Saga ํŒจํ„ด์€ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋ฉฐ ์–ด๋–ค ํ•œ๊ณ„๊ฐ€ ์žˆ๋Š”๊ฐ€? - ์กฐ์ง์˜ ์˜์‚ฌ์†Œํ†ต ๊ตฌ์กฐ๊ฐ€ ์†Œํ”„ํŠธ์›จ์–ด ์‹œ์Šคํ…œ ๊ตฌ์กฐ๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค๋Š” '์ฝ˜์›จ์ด์˜ ๋ฒ•์น™(Conway's Law)'์€ ํŒ€ ๊ทœ๋ชจ์™€ DevOps ํ™˜๊ฒฝ์„ ๊ณ ๋ คํ•œ ์‹ค์ œ ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„ ๋‹จ๊ณ„์— ์–ด๋–ป๊ฒŒ ์ ์šฉ๋  ์ˆ˜ ์žˆ๋Š”๊ฐ€? - ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜(EDA) ์„ค๊ณ„ ์‹œ ์›Œํฌํ”Œ๋กœ์šฐ ์ œ์–ด๋ฅผ ์œ„ํ•ด '๋ธŒ๋กœ์ปค(Broker)' ํ† ํด๋กœ์ง€์™€ '๋ฉ”๋””์—์ดํ„ฐ(Mediator)' ํ† ํด๋กœ์ง€๋ฅผ ๊ฒฐ์ •์ง“๋Š” ๊ตฌ์ฒด์ ์ธ ๋น„์ฆˆ๋‹ˆ์Šค ์š”๊ตฌ์‚ฌํ•ญ๊ณผ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„ ๊ธฐ์ค€์€ ๋ฌด์—‡์ธ๊ฐ€? - ์†Œํ”„ํŠธ์›จ์–ด ์ˆ˜๋ช… ์ฃผ๊ธฐ ๋™์•ˆ ๋ฐœ์ƒํ•˜๋Š” '์•„ํ‚คํ…์ฒ˜ ์นจ์‹(Architecture Erosion)'์„ ์‹๋ณ„ํ•˜๊ณ  ์˜ˆ๋ฐฉํ•˜๊ธฐ ์œ„ํ•œ ์ž๋™ํ™”๋œ ๋ถ„์„ ๊ธฐ๋ฒ• ๋ฐ ๋ฆฌํŒฉํ† ๋ง ์ „๋žต์€ ๋ฌด์—‡์ด ์žˆ๋Š”๊ฐ€? - ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์™ธ๋ถ€ ๊ธฐ์ˆ  ์Šคํƒ์œผ๋กœ๋ถ€ํ„ฐ ์™„์ „ํžˆ ๋ถ„๋ฆฌํ•˜๋Š” ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜(Clean Architecture)๋‚˜ ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜(Hexagonal Architecture)๋Š” ์˜๋ฃŒ๋‚˜ ๊ธˆ์œต ๊ฐ™์€ ๊ณ ๋ณด์•ˆยท๊ณ ๊ทœ์ œ ๋„๋ฉ”์ธ์—์„œ ์–ด๋–ค ๊ตฌ์กฐ์  ์ด์ ์„ ๊ทน๋Œ€ํ™”ํ•˜๋Š”๊ฐ€? ### Practical Application Contexts - **Implementation:** ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์˜ ์›์น™(์˜ˆ: ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜์˜ ํฌํŠธ์™€ ์–ด๋Œ‘ํ„ฐ)์— ๋”ฐ๋ผ ์ฝ”๋“œ ๋ฒ ์ด์Šค์˜ ํŒจํ‚ค์ง€ ๊ตฌ์กฐ๋ฅผ ๋ถ„๋ฆฌํ•˜๊ณ , ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ธํ„ฐํŽ˜์ด์Šค์˜ ์˜์กด์„ฑ์„ ์—ญ์ „์‹œ์ผœ ๊ธฐ์ˆ  ๊ต์ฒด๊ฐ€ ์šฉ์ดํ•œ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. - **System Design:** ํŠธ๋ž˜ํ”ฝ์˜ ์ŠคํŒŒ์ดํฌ ํ˜„์ƒ์ด๋‚˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋Ÿ‰(ISO 25010 ๊ธฐ๋ฐ˜ ์„ฑ๋Šฅ ํšจ์œจ์„ฑ) ๋“ฑ์„ ์˜ˆ์ธกํ•˜์—ฌ, ๋‹จ์ผ ๋ฐฐํฌ๊ฐ€ ์œ ๋ฆฌํ•œ ๋ชจ๋“ˆํ˜• ๋ชจ๋†€๋ฆฌ์Šค๋กœ ์‹œ์ž‘ํ• ์ง€ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋†’์€ ํ™•์žฅ์„ฑ์˜ ํ”ผ์–ด-ํˆฌ-ํ”ผ์–ด(P2P) ๋˜๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ์ฑ„ํƒํ• ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ์ฒญ์‚ฌ์ง„์„ ์„ค๊ณ„ํ•ฉ๋‹ˆ๋‹ค. - **Operation / Maintenance:** ADR(Architecture Decision Record)์„ ์ง€์†์ ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ์‹œ์Šคํ…œ ๋ณ€ํ™” ๋‚ด๋ ฅ์„ ํˆฌ๋ช…ํ•˜๊ฒŒ ๊ด€๋ฆฌํ•˜๋ฉฐ, ๋ถ„์‚ฐ ์•„ํ‚คํ…์ฒ˜์˜ ๊ฒฝ์šฐ ์„œํ‚ท ๋ธŒ๋ ˆ์ด์ปค๋‚˜ ๋ถ„์‚ฐ ๋กœ๊น… ๋“ฑ์„ ์šด์˜ ํ™˜๊ฒฝ์— ๋„์ž…ํ•˜์—ฌ ์žฅ์•  ๊ฒฉ๋ฆฌ์™€ ๋ณต๊ตฌ ๋Šฅ๋ ฅ์„ ๊ฐ•ํ™”ํ•ฉ๋‹ˆ๋‹ค. - **Learning Path:** ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด ๋˜๋Š” ๊ณ„์ธตํ˜• ์•„ํ‚คํ…์ฒ˜(Layered Architecture)์˜ ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•œ ํ›„ -> ๋””์ž์ธ ํŒจํ„ด๊ณผ ๋„๋ฉ”์ธ ์ฃผ๋„ ์„ค๊ณ„(DDD)๋ฅผ ํ•™์Šตํ•˜๊ณ  -> ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค, ์„œ๋ฒ„๋ฆฌ์Šค ๋“ฑ์˜ ๋ถ„์‚ฐ ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„๋กœ ๋„˜์–ด๊ฐ€๋ฉฐ -> ๋งˆ์ง€๋ง‰์œผ๋กœ ATAM์„ ํ†ตํ•ด ์—ฌ๋Ÿฌ ์•„ํ‚คํ…์ฒ˜์˜ ์žฅ๋‹จ์ ์„ ํ‰๊ฐ€ํ•˜๋Š” ์—ญ๋Ÿ‰์„ ๊ธฐ๋ฆ…๋‹ˆ๋‹ค. - **My Project Relevance:** ํ˜„์žฌ ์ง„ํ–‰ ์ค‘์ธ ํ”„๋กœ์ ํŠธ์˜ ํŒ€ ๊ทœ๋ชจ, ์˜ˆ์‚ฐ, ์˜ˆ์ƒ ํŠธ๋ž˜ํ”ฝ(Context)์„ ๋ถ„์„ํ•˜์—ฌ, ์˜ค๋ฒ„์—”์ง€๋‹ˆ์–ด๋ง(์˜ˆ: ๋ฌด๋ฆฌํ•œ MSA ๋„์ž…)์„ ํ”ผํ•˜๋ฉด์„œ๋„ ํ–ฅํ›„ ๋น„์ฆˆ๋‹ˆ์Šค ํ™•์žฅ์— ๋Œ€๋น„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ์  ๋ผˆ๋Œ€๋ฅผ ์„ ํƒํ•˜๋Š” ๋ฐ ์ง์ ‘์ ์ธ ๊ธฐ์ค€์ด ๋ฉ๋‹ˆ๋‹ค. ### Adjacent Topics - [[๋„๋ฉ”์ธ ์ฃผ๋„ ์„ค๊ณ„ (Domain-Driven Design)]] - ํ™•์žฅ ๋ฐฉํ–ฅ: ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜ ๋“ฑ์—์„œ ์„œ๋น„์Šค๋ฅผ ๋ถ„ํ• ํ•˜๋Š” ๋…ผ๋ฆฌ์  ๊ธฐ์ค€์ธ '๋ฐ”์šด๋””๋“œ ์ปจํ…์ŠคํŠธ(Bounded Context)'๋ฅผ ์„ค์ •ํ•˜๊ณ  ๋น„์ฆˆ๋‹ˆ์Šค ๊ทœ์น™์„ ์ค‘์‹ฌ์— ๋‘๋Š” ์ƒ์„ธํ•œ ๋„๋ฉ”์ธ ๋ชจ๋ธ๋ง ๊ธฐ๋ฒ•์œผ๋กœ ์ดํ•ด๋ฅผ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค. - [[์„œ๋ฒ„๋ฆฌ์Šค ์ปดํ“จํŒ… (Serverless Computing)]] - ํ™•์žฅ ๋ฐฉํ–ฅ: ๊ฐœ๋ฐœ์ž๊ฐ€ ์„œ๋ฒ„ ์ธํ”„๋ผ๋ฅผ ์ „ํ˜€ ๊ด€๋ฆฌํ•˜์ง€ ์•Š๊ณ  ์ด๋ฒคํŠธ ํŠธ๋ฆฌ๊ฑฐ์— ๋”ฐ๋ผ ํ•จ์ˆ˜ ๋‹จ์œ„๋กœ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰ ๋ฐ ๊ณผ๊ธˆ๋˜๋Š” ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ์•„ํ‚คํ…์ฒ˜์˜ ์ตœ์ „์„  ๊ธฐ์ˆ ๋กœ ์‹œ์•ผ๋ฅผ ๋„“ํž™๋‹ˆ๋‹ค. - [[์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„ ํŒจํ„ด (Software Design Patterns)]] - ํ™•์žฅ ๋ฐฉํ–ฅ: ์•„ํ‚คํ…์ฒ˜๊ฐ€ ์‹œ์Šคํ…œ์˜ ๋ผˆ๋Œ€๋ผ๋ฉด, ๊ฐ์ฒด ์ƒ์„ฑ, ๊ตฌ์กฐ, ํ–‰์œ„ ๋“ฑ ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฐ˜๋ณต์  ๋ฌธ์ œ์— ๋Œ€ํ•ด ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฏธ์‹œ์ ์ธ ์„ค๊ณ„ ๋„๊ตฌ(GoF ๋””์ž์ธ ํŒจํ„ด ๋“ฑ)๋กœ ํ•™์Šต์„ ์ „๊ฐœํ•ฉ๋‹ˆ๋‹ค. --- *Last updated: 2026-05-02*