--- category: Unified tags: [auto-consolidated, technical-documentation] title: [[Software Architecture Patterns]] last_updated: 2026-05-02 --- # [[Software Architecture Patterns]] ## ๐Ÿ“Œ Brief Summary ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด(Software Architecture Patterns)์€ ์†Œํ”„ํŠธ์›จ์–ด ์‹œ์Šคํ…œ์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ ์š”์†Œ์™€ ์ƒํ˜ธ์ž‘์šฉ, ์ „๋ฐ˜์ ์ธ ๋ ˆ์ด์•„์›ƒ์„ ์ •์˜ํ•˜๋Š” ์ฒญ์‚ฌ์ง„์ด์ž ๊ณ ์ˆ˜์ค€์˜ ๊ตฌ์กฐ์  ์„ค๊ณ„ ์ง€์นจ์ž…๋‹ˆ๋‹ค[1-3]. ์ด๋Š” ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ๋ฐ˜๋ณต์ ์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ์„ค๊ณ„ ๋ฌธ์ œ์— ๋Œ€ํ•ด ๊ฒ€์ฆ๋˜๊ณ  ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ•ด๊ฒฐ์ฑ…์„ ์ œ๊ณตํ•˜์—ฌ, ์‹œ์Šคํ…œ์˜ ํ™•์žฅ์„ฑ, ์œ ์ง€๋ณด์ˆ˜์„ฑ, ์„ฑ๋Šฅ ๋ฐ ๋ณด์•ˆ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค[1, 2, 4]. ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์˜ ์„ ํƒ์€ ํ”„๋กœ์ ํŠธ์˜ ์˜ˆ์‚ฐ, ๋ฆฌ์†Œ์Šค ํ• ๋‹น, ๊ฐœ๋ฐœ ์†๋„ ๋“ฑ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์ƒ๋ช…์ฃผ๊ธฐ(SDLC) ์ „๋ฐ˜์— ์ง€๋Œ€ํ•œ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์ „๋žต์  ์˜์‚ฌ๊ฒฐ์ •์ž…๋‹ˆ๋‹ค[5-7]. --- > "์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์ „์— ์ง€์‹๊ณผ ๊ธฐ๋Šฅ์˜ '์ง€๋„(Map)'๋ฅผ ๋จผ์ € ๊ทธ๋ ค๋ผ. ์˜ฌ๋ฐ”๋ฅธ ํŒจํ„ด ์„ ํƒ์€ ๋ณต์žก์„ฑ์ด๋ผ๋Š” ํŒŒ๋„ ์•ž์—์„œ ์‹œ์Šคํ…œ์„ ์ง€ํƒฑํ•˜๋Š” ๊ฐ€์žฅ ๊ฒฌ๊ณ ํ•œ ๋‹ป์ด ๋œ๋‹ค" โ€” ์†Œํ”„ํŠธ์›จ์–ด ์‹œ์Šคํ…œ์˜ ๊ตฌ์กฐ์  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ˜๋ณต์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒ€์ฆ๋œ ์„ค๊ณ„ ์›์น™๊ณผ ๊ณจ๊ฒฉ. ## ๐Ÿ“– Core Content **1. ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์˜ ์ „๋žต์  ์—ญํ•  ๋ฐ ํ‰๊ฐ€** ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์€ ๋‹จ์ผ ๋ชจ๋“ˆ ๋‚ด์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” '๋””์ž์ธ ํŒจํ„ด'๊ณผ ๋‹ฌ๋ฆฌ ๊ฑฐ์‹œ์ ์ธ ์‹œ์Šคํ…œ ๋ ˆ๋ฒจ์˜ ๊ตฌ์กฐ๋ฅผ ๋‹ค๋ฃน๋‹ˆ๋‹ค[4, 8-10]. ์™„๋ฒฝํ•œ ์•„ํ‚คํ…์ฒ˜๋Š” ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋ชจ๋“  ์•„ํ‚คํ…์ฒ˜ ๊ฒฐ์ •์—๋Š” ํƒ€ํ˜‘(Trade-off)์ด ์ˆ˜๋ฐ˜๋ฉ๋‹ˆ๋‹ค[11, 12]. ๋”ฐ๋ผ์„œ ISO 25010๊ณผ ๊ฐ™์€ ํ’ˆ์งˆ ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ™•์žฅ์„ฑ, ์„ฑ๋Šฅ, ์œ ์ง€๋ณด์ˆ˜์„ฑ ๋“ฑ์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ์šฐ์„ ์ˆœ์œ„ํ™”ํ•˜๊ณ , **ATAM(Architecture Tradeoff Analysis Method)**๊ณผ ๊ฐ™์€ ๊ธฐ๋ฒ•์„ ํ†ตํ•ด ์•„ํ‚คํ…์ฒ˜๊ฐ€ ๋น„์ฆˆ๋‹ˆ์Šค ๋ชฉํ‘œ๋ฅผ ์–ด๋–ป๊ฒŒ ์ง€์›ํ•˜๋Š”์ง€ ์‹œ๋‚˜๋ฆฌ์˜ค ๊ธฐ๋ฐ˜์œผ๋กœ ํ‰๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค[12-16]. ์˜์‚ฌ๊ฒฐ์ •์˜ ์ด๋ ฅ์€ **ADR(Architecture Decision Record)**๋กœ ๋ช…ํ™•ํžˆ ๋ฌธ์„œํ™”๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค[7, 17]. **2. ์ฃผ์š” ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์˜ ์ข…๋ฅ˜์™€ ํŠน์ง•** * **๊ณ„์ธตํ˜• ์•„ํ‚คํ…์ฒ˜ (Layered Architecture):** ์‹œ์Šคํ…œ์„ ํ”„๋ ˆ์  ํ…Œ์ด์…˜, ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง, ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค ๋“ฑ ์ˆ˜ํ‰์  ๊ณ„์ธต์œผ๋กœ ๋ถ„ํ• ํ•˜์—ฌ '๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ'๋ฅผ ์‹คํ˜„ํ•ฉ๋‹ˆ๋‹ค[18-20]. ๊ฐœ๋ฐœ์ด ์ง๊ด€์ ์ด์ง€๋งŒ, ๊ทœ๋ชจ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ๋ณ€๊ฒฝ์ด ์–ด๋ ค์›Œ์ง€๊ณ  ์„ฑ๋Šฅ ๋ณ‘๋ชฉ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค[21, 22]. * **๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜ (Microservices Architecture, MSA):** ๊ฑฐ๋Œ€ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋„๋ฉ”์ธ ์ฃผ๋„ ์„ค๊ณ„(DDD) ๊ธฐ๋ฐ˜์œผ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ, ๋…๋ฆฝ์ ์œผ๋กœ ๋ฐฐํฌ ๋ฐ ํ™•์žฅ์ด ๊ฐ€๋Šฅํ•œ ์ž‘์€ ์„œ๋น„์Šค๋“ค์˜ ์ง‘ํ•ฉ์œผ๋กœ ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค[23-31]. ๊ฐ ์„œ๋น„์Šค๋Š” ๋…๋ฆฝ์ ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฐ€์ง€๋ฉฐ ๋†’์€ ์ž์œจ์„ฑ์„ ํ™•๋ณดํ•˜์ง€๋งŒ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ๊ฐ€ ๋ณต์žกํ•ด์ง‘๋‹ˆ๋‹ค[31-33]. * **์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜ (Event-Driven Architecture, EDA):** ์ด๋ฒคํŠธ(์ƒํƒœ ๋ณ€ํ™”)๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ฐ์ง€ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌ์„ฑ ์š”์†Œ๋“ค์ด ๋น„๋™๊ธฐ์ ์œผ๋กœ ์ƒํ˜ธ์ž‘์šฉํ•ฉ๋‹ˆ๋‹ค[34-36]. ์ค‘์•™ ํ†ต์ œ ์—†๋Š” **๋ธŒ๋กœ์ปค(Broker)** ๋ชจ๋ธ๊ณผ ์ค‘์•™์—์„œ ํ๋ฆ„์„ ์กฐ์ •ํ•˜๋Š” **๋ฉ”๋””์—์ดํ„ฐ(Mediator)** ๋ชจ๋ธ๋กœ ๋‚˜๋‰˜๋ฉฐ, ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์™€ ๋†’์€ ํ™•์žฅ์„ฑ์ด ํ•„์š”ํ•œ ์‹œ์Šคํ…œ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค[37, 38]. * **๋งˆ์ดํฌ๋กœ์ปค๋„ ์•„ํ‚คํ…์ฒ˜ (Microkernel / Plug-in Architecture):** ํ•ต์‹ฌ ๊ธฐ๋Šฅ๋งŒ ๋‹ด์€ ์ฝ”์–ด ์‹œ์Šคํ…œ๊ณผ ํŠนํ™”๋œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ์ปดํฌ๋„ŒํŠธ๋กœ ๋ถ„๋ฆฌ๋ฉ๋‹ˆ๋‹ค[39-41]. ํ•ต์‹ฌ ์ฝ”๋“œ ๋ณ€๊ฒฝ ์—†์ด ์œ ์—ฐํ•˜๊ฒŒ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์–ด IDE, ์šด์˜์ฒด์ œ(OS), ๋ธŒ๋ผ์šฐ์ € ๋“ฑ์— ์ฃผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค[41-43]. * **๋„๋ฉ”์ธ ์ค‘์‹ฌ ์•„ํ‚คํ…์ฒ˜ (Hexagonal, Onion, Clean Architecture):** ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์•„ํ‚คํ…์ฒ˜ ์ค‘์•™์— ๋ฐฐ์น˜ํ•˜๊ณ  ์™ธ๋ถ€ ์˜์กด์„ฑ(DB, UI ๋“ฑ) ๋ฐฉํ–ฅ์„ ์•ˆ์ชฝ์œผ๋กœ ํ–ฅํ•˜๊ฒŒ ํ•˜๋Š” ์˜์กด์„ฑ ์—ญ์ „์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค[44-46]. 'ํฌํŠธ์™€ ์–ด๋Œ‘ํ„ฐ'๋ฅผ ํ†ตํ•ด ์™ธ๋ถ€ ์ธํ”„๋ผ ๋ณ€๊ฒฝ์—๋„ ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์™„๋ฒฝํ•˜๊ฒŒ ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค[46-48]. * **๊ณต๊ฐ„ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜ (Space-Based Architecture):** ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ ๊ทธ๋ฆฌ๋“œ(IMDG)์™€ ๊ฐ™์€ ๋ถ„์‚ฐ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠธ๋ž˜ํ”ฝ ๊ธ‰์ฆ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณ ์„ฑ๋Šฅ ํŒจํ„ด์ž…๋‹ˆ๋‹ค[49-52]. * **์„œ๋ฒ„๋ฆฌ์Šค ์•„ํ‚คํ…์ฒ˜ (Serverless Architecture):** ํด๋ผ์šฐ๋“œ ๊ณต๊ธ‰์ž๊ฐ€ ์„œ๋ฒ„ ์ž์›์„ ๋™์ ์œผ๋กœ ํ• ๋‹นํ•˜๊ณ  ํ•จ์ˆ˜(Function) ๋‹จ์œ„๋กœ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค[32, 53]. ํŠธ๋ž˜ํ”ฝ ๋ณ€๋™์ด ์‹ฌํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋งค์šฐ ๊ฒฝ์ œ์ ์ž…๋‹ˆ๋‹ค[32, 54]. * **๋ชจ๋“ˆํ˜• ๋ชจ๋†€๋ฆฌ์Šค (Modular Monolith):** ๋‹จ์ผ ๋ฐฐํฌ ๋‹จ์œ„๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ๋„ ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” ๋„๋ฉ”์ธ ๊ฒฝ๊ณ„๋ฅผ ์—„๊ฒฉํžˆ ๋‚˜๋ˆ„์–ด ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ์žฅ์ (๊ตฌ์กฐํ™”)๊ณผ ๋ชจ๋†€๋ฆฌ์‹์˜ ์žฅ์ (๋‹จ์ˆœ์„ฑ)์„ ๊ฒฐํ•ฉํ•œ ๋Œ€์•ˆ์  ์ ‘๊ทผ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค[55-58]. --- - **์ถ”์ถœ๋œ ํŒจํ„ด:** "[[_แ„‚แ…ฌแ„‹แ…ช แ„‘แ…กแ†ฏแ„ƒแ…กแ„…แ…ตแ„‹แ…ด แ„‡แ…ฎแ†ซแ„…แ…ต_ - แ„€แ…ชแ†ซแ„‰แ…ตแ†ทแ„‰แ…กแ„‹แ…ด แ„‡แ…ฎแ†ซแ„…แ…ต (Separation of Concerns)|Separation of Concerns]] and Structural [[Modularity|Modularity]]" โ€” ์‹œ์Šคํ…œ์˜ ์ฑ…์ž„์„ ๋ช…ํ™•ํžˆ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ณ€๊ฒฝ์˜ ํŒŒ๊ธ‰ ํšจ๊ณผ๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ณ , ํŠน์ • ์š”๊ตฌ์‚ฌํ•ญ(ํ™•์žฅ์„ฑ, ์„ฑ๋Šฅ, ๋ฐฐํฌ ์†๋„ ๋“ฑ)์— ์ตœ์ ํ™”๋œ ์ปดํฌ๋„ŒํŠธ ๊ฐ„ ๋ฐฐ์น˜ ๋ฐฉ์‹์„ ๊ฒฐ์ •ํ•˜๋Š” ํŒจํ„ด. - **์ฃผ์š” ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด:** - **Layered (N-tier):** ์—ญํ• ์„ ์ˆ˜ํ‰์œผ๋กœ ๋ถ„๋ฆฌ (UI-[[business|business]]-Data). ๊ฐ€์žฅ ๋ฒ”์šฉ์ ์ด๊ณ  ๋‹จ์ˆœํ•จ. - **Event-driven:** ๋น„๋™๊ธฐ ์ด๋ฒคํŠธ๋ฅผ ํ†ตํ•ด ํ†ต์‹ . ๋†’์€ ํ™•์žฅ์„ฑ๊ณผ ์œ ์—ฐ์„ฑ ์ œ๊ณต. - **Microservices:** ๋น„์ฆˆ๋‹ˆ์Šค ๋‹จ์œ„๋กœ ์„œ๋น„์Šค๋ฅผ ์™„์ „ํžˆ ์ชผ๊ฐœ์–ด ๋…๋ฆฝ์  ๋ฐฐํฌ์™€ ํ™•์žฅ์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•จ. - **Microkernel (Plugin):** ํ•ต์‹ฌ ์ฝ”์–ด์— ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€/์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ตฌ์กฐ. ํ™•์žฅ์„ฑ ์šฐ์ˆ˜. - **Hexagonal (Ports & Adapters):** ํ•ต์‹ฌ ๋กœ์ง์„ ์™ธ๋ถ€ ํ™˜๊ฒฝ(DB, UI ๋“ฑ)์œผ๋กœ๋ถ€ํ„ฐ ๊ณ ๋ฆฝ์‹œ์ผœ ํ…Œ์ŠคํŠธ ์šฉ์ด์„ฑ ๊ทน๋Œ€ํ™”. - **์˜์˜:** ๊ฐœ๋ฐœํŒ€์ด ๋™์ผํ•œ ์„ค๊ณ„ ์–ธ์–ด๋ฅผ ๊ณต์œ ํ•˜๊ฒŒ ํ•˜๋ฉฐ, ์ดˆ๊ธฐ ๊ฒฐ์ •์ด ํ–ฅํ›„ ์‹œ์Šคํ…œ์˜ ์ƒ์กด ์—ฌ๋ถ€์™€ ๋น„์šฉ์— ๊ฒฐ์ •์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” '์†Œํ”„ํŠธ์›จ์–ด์˜ ๋ผˆ๋Œ€' ๊ตฌ์ถ• ๊ณผ์ •. ## โš–๏ธ Trade-offs & Caveats * **๋ถ„์‚ฐ ์‹œ์Šคํ…œ์˜ ๋ณต์žก์„ฑ ์ฆ๋Œ€:** MSA์™€ EDA๋Š” ๊ตฌ์„ฑ ์š”์†Œ ๊ฐ„ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๊ณ  ๊ฐœ๋ณ„ ํ™•์žฅ์„ฑ์„ ๋†’์—ฌ์ฃผ์ง€๋งŒ, ๋„คํŠธ์›Œํฌ ์ง€์—ฐ(Latency), ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ(์˜ˆ: Saga ํŒจํ„ด์„ ํ†ตํ•œ ์ตœ์ข… ์ผ๊ด€์„ฑ ์œ ์ง€), ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹  ์žฅ์•  ์‹œ์˜ ๋Œ€์‘(Circuit Breaker ์ ์šฉ) ๋“ฑ ์šด์˜ ๋ฐ ๋””๋ฒ„๊น…์˜ ๋ณต์žก์„ฑ์„ ํฌ๊ฒŒ ๋†’์ž…๋‹ˆ๋‹ค[33, 36, 37, 59, 60]. * **์ฝœ๋“œ ์Šคํƒ€ํŠธ์™€ ๋ฒค๋” ์ข…์†์„ฑ:** ์„œ๋ฒ„๋ฆฌ์Šค ์•„ํ‚คํ…์ฒ˜๋Š” ์œ ํœด ์ƒํƒœ์˜ ํ•จ์ˆ˜๊ฐ€ ์ฒ˜์Œ ์‹คํ–‰๋  ๋•Œ ์‘๋‹ต ์ง€์—ฐ์ด ๋ฐœ์ƒํ•˜๋Š” ์ฝœ๋“œ ์Šคํƒ€ํŠธ(Cold Start) ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉฐ, ํŠน์ • ํด๋ผ์šฐ๋“œ ๋ฒค๋”(AWS, Azure ๋“ฑ)์˜ ์ธํ”„๋ผ์— ์‹œ์Šคํ…œ์ด ๊ฐ•ํ•˜๊ฒŒ ์ข…์†(Vendor Lock-in)๋˜๋Š” ์œ„ํ—˜์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค[58, 61-63]. * **์˜ค๋ฒ„์—”์ง€๋‹ˆ์–ด๋ง(Over-engineering)์˜ ์œ„ํ—˜:** ๋‹จ์ˆœํ•œ CRUD ๊ธฐ๋ฐ˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‚˜ ๋น ๋ฅธ MVP ๊ฒ€์ฆ์ด ํ•„์š”ํ•œ ์Šคํƒ€ํŠธ์—… ํ”„๋กœ์ ํŠธ์— ํด๋ฆฐ/ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜๋‚˜ MSA๋ฅผ ๋„์ž…ํ•˜๋ฉด, ์ดˆ๊ธฐ ์„ค์ •์˜ ๋ณต์žก์„ฑ, ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ ์ฝ”๋“œ ์ฆ๊ฐ€, ๊ธ‰๊ฒฉํ•œ ํ•™์Šต ๊ณก์„ ์œผ๋กœ ์ธํ•ด ์˜คํžˆ๋ ค ๊ฐœ๋ฐœ ์ƒ์‚ฐ์„ฑ๊ณผ ์‹œ์žฅ ์ง„์ž… ์†๋„๋ฅผ ์ €ํ•˜์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค[24, 64-66]. * **๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ๊ณผ ๋™๊ธฐํ™”:** ๊ณต๊ฐ„ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณ‘๋ชฉ์„ ์ œ๊ฑฐํ•˜์ง€๋งŒ ๋Œ€๊ทœ๋ชจ ๋ถ„์‚ฐ ๋ฉ”๋ชจ๋ฆฌ ํ™˜๊ฒฝ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋™๊ธฐํ™”ํ•˜๊ณ  ์บ์‹ฑํ•˜๋Š” ์ž‘์—…์ด ๋งค์šฐ ๋ณต์žกํ•˜๋ฉฐ ์ผ์‹œ์ ์ธ ๋ถˆ์ผ์น˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค[55, 67]. ํ”ผ์–ด-ํˆฌ-ํ”ผ์–ด(P2P) ์•„ํ‚คํ…์ฒ˜ ์—ญ์‹œ ํƒˆ์ค‘์•™ํ™”๋กœ ์ธํ•ด ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ ๋ฐ ๋ณด์•ˆ ํ†ต์ œ๋ฅผ ๊ฐ•์ œํ•˜๊ธฐ ์–ด๋ ต๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค[68, 69]. --- - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** "๋ฌด์กฐ๊ฑด ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๊ฐ€ ์ตœ๊ณ ๋‹ค"๋ผ๋Š” ์œ ํ–‰์—์„œ ๋ฒ—์–ด๋‚˜, ์‹œ์Šคํ…œ์˜ ๊ทœ๋ชจ์™€ ํŒ€์˜ ์—ญ๋Ÿ‰์— ๋งž์ถฐ ๋‹จ์ˆœํ•œ ๋ชจ๋†€๋ฆฌ์‹(Monolithic)์ด๋‚˜ ๋ชจ๋“ˆํ˜• ๋ชจ๋†€๋ฆฌ์‹(Modular Monolith)์ด ๋” ํšจ์œจ์ ์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์‹ค์šฉ์ฃผ์˜์  ์ ‘๊ทผ์ด ๋‹ค์‹œ ๊ฐ•์กฐ๋˜๊ณ  ์žˆ์Œ. - **์ •์ฑ… ๋ณ€ํ™”:** Antigravity ํ”„๋กœ์ ํŠธ๋Š” ํ•ต์‹ฌ ์—์ด์ „ํŠธ ์—”์ง„์€ ๋งˆ์ดํฌ๋กœ์ปค๋„ ํŒจํ„ด์œผ๋กœ ์„ค๊ณ„ํ•˜์—ฌ ๊ธฐ๋Šฅ์„ ์œ ์—ฐํ•˜๊ฒŒ ํ™•์žฅํ•˜๊ณ , ์ „์ฒด ์„œ๋น„์Šค ๋ฐฐํฌ๋Š” ๋…๋ฆฝ์„ฑ์„ ์œ„ํ•ด ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์ง€ํ–ฅ์  ํŒจํ„ด์„ ์ค€์ˆ˜ํ•จ. ## ๐Ÿ”— Knowledge Connections ### Related Concepts #### [์•„ํ‚คํ…์ฒ˜ ํ‰๊ฐ€ ๋ฐ ๊ด€๋ฆฌ] - [[ATAM (Architecture Tradeoff Analysis Method)]] - ์—ฐ๊ฒฐ ์ด์œ : ์•„ํ‚คํ…์ฒ˜๊ฐ€ ๋น„์ฆˆ๋‹ˆ์Šค ์š”๊ตฌ์‚ฌํ•ญ๊ณผ ํ’ˆ์งˆ ์†์„ฑ(๊ฐ€์šฉ์„ฑ, ๋ณด์•ˆ, ์„ฑ๋Šฅ ๋“ฑ)์„ ์–ผ๋งˆ๋‚˜ ์ž˜ ์ง€์›ํ•˜๋Š”์ง€ ๊ตฌ์ฒด์ ์ธ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํ‰๊ฐ€ํ•˜๊ณ , ํƒ€ํ˜‘์ (Trade-offs)์„ ์‹๋ณ„ํ•˜๋Š” ํ‘œ์ค€ ๋ฐฉ๋ฒ•๋ก ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค[12, 13, 16]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์•„ํ‚คํ…์ฒ˜ ๊ฒฐ์ • ๊ณผ์ •์—์„œ ์„ฑ๋Šฅ๊ณผ ๋ณด์•ˆ ๋“ฑ ์ƒ์ถฉํ•˜๋Š” ํ’ˆ์งˆ ์†์„ฑ ๊ฐ„์˜ ์šฐ์„ ์ˆœ์œ„ ๊ฒฐ์ •๊ณผ ์œ„ํ—˜(Risk)์„ ์ฒด๊ณ„์ ์œผ๋กœ ๋„์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - [[ADR (Architecture Decision Record)]] - ์—ฐ๊ฒฐ ์ด์œ : ๊ตฌ์กฐ์  ๊ฒฐ์ •์„ ๋‚ด๋ฆด ๋•Œ ํ•ด๋‹น ๊ฒฐ์ •์˜ ์ปจํ…์ŠคํŠธ, ์ฑ„ํƒํ•œ ๋Œ€์•ˆ๊ณผ ๊ฑฐ์ ˆํ•œ ์ด์œ , ์žฅ๊ธฐ์  ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋กํ•˜๋Š” ๊ณต์‹ ๋ฌธ์„œํ™” ๊ธฐ๋ฒ•์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค[7, 17]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์‹œ๊ฐ„์ด ํ๋ฅด๊ณ  ์กฐ์ง์ด ๋ณ€๊ฒฝ๋˜์–ด๋„ ์•„ํ‚คํ…์ฒ˜๊ฐ€ ์นจ์‹(Architecture Erosion)๋˜์ง€ ์•Š๋„๋ก ๊ธฐ์ˆ ์  ์˜์‚ฌ๊ฒฐ์ •์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ์šด์˜ ์ „๋žต์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. #### [๋ถ„์‚ฐ ์‹œ์Šคํ…œ ํ†ต์‹  ๋ฐ ํŠธ๋žœ์žญ์…˜ ํŒจํ„ด] - [[Saga Pattern]] - ์—ฐ๊ฒฐ ์ด์œ : ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜์—์„œ ๊ฐ ์„œ๋น„์Šค๊ฐ€ ๊ณ ์œ ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฐ€์งˆ ๋•Œ(Database per Service), ๋ถ„์‚ฐ๋œ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ๋ฅผ ๋กœ์ปฌ ํŠธ๋žœ์žญ์…˜์˜ ์—ฐ์†์ ์ธ ์ด๋ฒคํŠธ(์ตœ์ข… ์ผ๊ด€์„ฑ)๋กœ ํ•ด๊ฒฐํ•˜๋Š” ํ•„์ˆ˜ ํŒจํ„ด์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค[36, 70]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ACID ํŠธ๋žœ์žญ์…˜์„ ํฌ๊ธฐํ•˜๋Š” ๋Œ€์‹  ๋Œ€๊ทœ๋ชจ ๋ถ„์‚ฐ ํ™˜๊ฒฝ์—์„œ ์–ด๋–ป๊ฒŒ ๋ฐ์ดํ„ฐ์˜ ์ •ํ•ฉ์„ฑ์„ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณด์žฅํ•˜๊ณ  ์‹คํŒจ๋ฅผ ๋ณด์ƒ(Compensating Transaction)ํ•˜๋Š”์ง€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - [[CQRS (Command Query Responsibility Segregation)]] - ์—ฐ๊ฒฐ ์ด์œ : ์‹œ์Šคํ…œ์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ช…๋ น(Command)๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ์งˆ์˜(Query)์˜ ์ฑ…์ž„์„ ๋ถ„๋ฆฌํ•˜์—ฌ, ๋ฐ์ดํ„ฐ ์ง‘์•ฝ์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ฝ๊ธฐ/์“ฐ๊ธฐ ์„ฑ๋Šฅ์„ ๊ทน๋Œ€ํ™”ํ•˜๋Š” ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค[70, 71]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์ด๋ฒคํŠธ ์†Œ์‹ฑ(Event Sourcing)์ด๋‚˜ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜(EDA)์™€ ๊ฒฐํ•ฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์–ด๋–ป๊ฒŒ ์ตœ์ ํ™”ํ•˜๊ณ  ๋…๋ฆฝ์ ์œผ๋กœ ํ™•์žฅํ•˜๋Š”์ง€ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. #### [์„ค๊ณ„ ํŒจ๋Ÿฌ๋‹ค์ž„ ๋ฐ ๋ฐฉ๋ฒ•๋ก ] - [[DDD (Domain-Driven Design)]] - ์—ฐ๊ฒฐ ์ด์œ : ์‹œ์Šคํ…œ์„ ๋น„์ฆˆ๋‹ˆ์Šค ๋„๋ฉ”์ธ ์—ญ๋Ÿ‰๋ณ„๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ์›์น™์„ ์ œ๊ณตํ•˜์—ฌ, ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ์ด์ƒ์ ์ธ ๊ฒฝ๊ณ„(Bounded Context)๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ๊ทผ๋ณธ์ ์ธ ๊ฐ€์ด๋“œ๋ฅผ ์ œ์‹œํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค[31, 72, 73]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ๊ธฐ์ˆ ์  ๋ณต์žก์„ฑ์ด ์•„๋‹Œ ๋น„์ฆˆ๋‹ˆ์Šค ๊ทœ์น™๊ณผ ๋ชจ๋ธ์„ ์ค‘์‹ฌ์œผ๋กœ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ถ”์ƒํ™”ํ•˜๊ณ  ์„ค๊ณ„ํ•˜๋Š” ๋ณธ์งˆ์  ์ ‘๊ทผ๋ฒ•์„ ํ•™์Šตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ### Deeper Research Questions - ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜(MSA)์—์„œ ๊ฐœ๋ณ„ ์„œ๋น„์Šค๊ฐ€ ๋…๋ฆฝ์ ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” '๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ' ๋ฌธ์ œ๋ฅผ Saga ํŒจํ„ด๊ณผ Event Sourcing ํŒจํ„ด์€ ๊ฐ๊ฐ ์–ด๋–ค ์›๋ฆฌ๋กœ ํ•ด๊ฒฐํ•˜๋ฉฐ ๊ทธ ํ•œ๊ณ„๋Š” ๋ฌด์—‡์ธ๊ฐ€? - ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜(EDA) ๋‚ด์˜ ๋ธŒ๋กœ์ปค(Broker) ํ† ํด๋กœ์ง€์™€ ๋ฉ”๋””์—์ดํ„ฐ(Mediator) ํ† ํด๋กœ์ง€๋Š” ์›Œํฌํ”Œ๋กœ์šฐ ์ œ์–ด์™€ ์—๋Ÿฌ ๋ณต๊ตฌ ๊ด€์ ์—์„œ ์–ด๋–ค ๊ฒฐ์ •์  ์ฐจ์ด์™€ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„๋ฅผ ๊ฐ–๋Š”๊ฐ€? - ์„œ๋ฒ„๋ฆฌ์Šค(Serverless) ์ปดํ“จํŒ… ํ™˜๊ฒฝ์—์„œ ํ•จ์ˆ˜ ํ™œ์„ฑํ™” ์ง€์—ฐ์„ ์˜๋ฏธํ•˜๋Š” ์ฝœ๋“œ ์Šคํƒ€ํŠธ(Cold Start) ๋ฌธ์ œ๋ฅผ ๊ธฐ์ˆ ์ ์œผ๋กœ ์™„ํ™”ํ•˜๊ณ , ๋ฒค๋” ์ข…์†์„ฑ(Vendor Lock-in) ๋ฆฌ์Šคํฌ๋ฅผ ํšŒํ”ผํ•˜๊ธฐ ์œ„ํ•œ ์•„ํ‚คํ…์ฒ˜ ์ˆ˜์ค€์˜ ์ „๋žต์€ ๋ฌด์—‡์ธ๊ฐ€? - ์ดˆ๊ธฐ ์Šคํƒ€ํŠธ์—…์˜ MVP ์ œํ’ˆ์„ ๋ชจ๋†€๋ฆฌ์‹ ์•„ํ‚คํ…์ฒ˜๋กœ ๋น ๋ฅด๊ฒŒ ๊ตฌ์ถ•ํ•œ ํ›„, ๋น„์ฆˆ๋‹ˆ์Šค ์„ฑ์žฅ์— ๋”ฐ๋ผ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ํ˜น์€ ๋ชจ๋“ˆํ˜• ๋ชจ๋†€๋ฆฌ์Šค(Modular Monolith)๋กœ ์•ˆ์ „ํ•˜๊ณ  ์ ์ง„์ ์œผ๋กœ ์ „ํ™˜ํ•˜๋Š” ๋ฆฌํŒฉํ† ๋ง ์ „๋žต(์˜ˆ: Strangler Fig Pattern)์€ ์–ด๋–ป๊ฒŒ ์ ์šฉ๋˜๋Š”๊ฐ€? - ๋„๋ฉ”์ธ ์ค‘์‹ฌ ์•„ํ‚คํ…์ฒ˜(Hexagonal, Clean Architecture)์˜ 'ํฌํŠธ์™€ ์–ด๋Œ‘ํ„ฐ' ๊ฐœ๋…์„ ๋ ˆ๊ฑฐ์‹œ ์‹œ์Šคํ…œ ํ˜„๋Œ€ํ™”(Modernization) ์ž‘์—…์— ์ ์šฉํ•  ๋•Œ ์‹ค๋ฌด์ ์œผ๋กœ ๊ฒช๊ฒŒ ๋˜๋Š” ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ ์ฝ”๋“œ ์ฆ๊ฐ€์™€ ์„ฑ๋Šฅ ์˜ค๋ฒ„ํ—ค๋“œ ๋ฌธ์ œ๋Š” ์–ด๋–ป๊ฒŒ ํƒ€ํ˜‘์ ์„ ์ฐพ์•„์•ผ ํ•˜๋Š”๊ฐ€? ### Practical Application Contexts - **Implementation:** ๋น„์ฆˆ๋‹ˆ์Šค ํ•ต์‹ฌ ๋กœ์ง๊ณผ ์™ธ๋ถ€ ์ธํ”„๋ผ(DB, ์›น ํ”„๋ ˆ์ž„์›Œํฌ)์˜ ๊ฐ•ํ•œ ๊ฒฐํ•ฉ์„ ๋Š์–ด๋‚ด์•ผ ํ•  ๋•Œ, ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ ์šฉํ•˜์—ฌ ํฌํŠธ์™€ ์–ด๋Œ‘ํ„ฐ๋ฅผ ๊ตฌํ˜„ํ•จ์œผ๋กœ์จ ์ถ”ํ›„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‚˜ ์™ธ๋ถ€ API ์ œ๊ณต์ž๊ฐ€ ๋ณ€๊ฒฝ๋˜๋”๋ผ๋„ ๋„๋ฉ”์ธ ์ฝ”๋“œ์˜ ์ˆ˜์ •์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค[46-48]. - **System Design:** ๋ธ”๋ž™ํ”„๋ผ์ด๋ฐ์ด ๋“ฑ ์˜ˆ์ธก ๋ถˆ๊ฐ€ํ•œ ๊ทน๋‹จ์  ํŠธ๋ž˜ํ”ฝ ์ŠคํŒŒ์ดํฌ๊ฐ€ ์˜ˆ์ƒ๋˜๋Š” ์ด์ปค๋จธ์Šค๋‚˜ ์ŠคํŠธ๋ฆฌ๋ฐ ํ”Œ๋žซํผ ์„ค๊ณ„ ์‹œ, ์ƒํƒœ๋ฅผ ๋ถ„์‚ฐ ์ธ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜(Space-based)๋‚˜ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์„ ์„ค๊ณ„ํ•˜์—ฌ ๋™์  ํ™•์žฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค[49-51, 74, 75]. - **Operation / Maintenance:** ๊ฐœ๋ฐœ ์กฐ์ง์˜ ๊ทœ๋ชจ๊ฐ€ ์ปค์ง€๊ณ  ์žฆ์€ ํ‡ด์‚ฌ/์ž…์‚ฌ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ, ๊ณผ๊ฑฐ์˜ ๊ธฐ์ˆ ์  ์„ ํƒ(์˜ˆ: ํŠน์ • DB ๋„์ž…, ์•„ํ‚คํ…์ฒ˜ ๋ถ„๋ฆฌ ๊ธฐ์ค€)์„ ADR(Architecture Decision Record)๋กœ ๋ฌธ์„œํ™”ํ•˜์—ฌ ์‹œ์Šคํ…œ ์œ ์ง€๋ณด์ˆ˜์™€ ์‹ ๊ทœ ์ธ๋ ฅ ์˜จ๋ณด๋”ฉ์„ ์œ„ํ•œ ๋‹จ์ผ ์ง„์‹ค ๊ณต๊ธ‰์›(Single Source of Truth)์œผ๋กœ ์šด์˜ํ•ฉ๋‹ˆ๋‹ค[7, 17, 76, 77]. - **Learning Path:** ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž๊ฐ€ ์ „ํ†ต์ ์ธ ๊ณ„์ธตํ˜• ์•„ํ‚คํ…์ฒ˜(N-Tier, MVC)๋ฅผ ํ†ตํ•ด ๊ธฐ์ดˆ์ ์ธ ๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ๋ฅผ ํ•™์Šตํ•œ ๋’ค, ๋„๋ฉ”์ธ ์ค‘์‹ฌ ์„ค๊ณ„(DDD), ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค๋ฅผ ํ™œ์šฉํ•œ ๋น„๋™๊ธฐ ํ†ต์‹ (EDA), ์ตœ์ข…์ ์œผ๋กœ ๋ณต์žกํ•œ ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์„ค๊ณ„(MSA) ์ˆœ์œผ๋กœ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ ๊ฐœ๋…์„ ํ™•์žฅํ•ด ๋‚˜๊ฐ€๋Š” ๋กœ๋“œ๋งต์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. - **My Project Relevance:** ํ˜„์žฌ ์†Œ๊ทœ๋ชจ ์ธ๋ ฅ๊ณผ ์˜ˆ์‚ฐ์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ผ๋ฉด ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ๋ณต์žก์„ฑ์„ ํ”ผํ•˜๋ฉด์„œ๋„ ํ–ฅํ›„ ํ™•์žฅ์ด ์šฉ์ดํ•˜๋„๋ก '๋ชจ๋“ˆํ˜• ๋ชจ๋†€๋ฆฌ์Šค(Modular Monolith)' ํŒจํ„ด์„ 1์ฐจ์ ์œผ๋กœ ์ฑ„ํƒํ•˜์—ฌ ์‹œ์Šคํ…œ์˜ ๊ตฌ์กฐ์  ์•ˆ์ „์„ฑ๊ณผ ๋ฐฐํฌ ํšจ์œจ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•ฉ๋‹ˆ๋‹ค[56-58]. ### Adjacent Topics - [[Micro Frontends]] - ํ™•์žฅ ๋ฐฉํ–ฅ: ๋ฐฑ์—”๋“œ์—์„œ ์ถœ๋ฐœํ•œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค(MSA)์˜ ์ฒ ํ•™๊ณผ ์•„ํ‚คํ…์ฒ˜ ์›๋ฆฌ๋ฅผ ํ”„๋ก ํŠธ์—”๋“œ ์˜์—ญ๊นŒ์ง€ ํ™•์žฅํ•˜์—ฌ, ๋Œ€๊ทœ๋ชจ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ UI ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋…๋ฆฝ์ ์ธ ํŒ€์ด ๊ฐœ๋ฐœํ•˜๊ณ  ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“œ๋Š” ํ”„๋ก ํŠธ์—”๋“œ ํ†ตํ•ฉ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์—ฐ๊ตฌํ•ฉ๋‹ˆ๋‹ค. - [[Service Mesh]] - ํ™•์žฅ ๋ฐฉํ–ฅ: ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ํ™˜๊ฒฝ์—์„œ ์ˆ˜๋งŽ์€ ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹ ์˜ ๋ณต์žก์„ฑ(์„œ๋น„์Šค ๋””์Šค์ปค๋ฒ„๋ฆฌ, ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ, ํŠธ๋ž˜ํ”ฝ ๋ผ์šฐํŒ…, ๋ณด์•ˆ ๋“ฑ)์„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ์—์„œ ๋ถ„๋ฆฌํ•˜์—ฌ ์ธํ”„๋ผ(์‚ฌ์ด๋“œ์นด ํ”„๋ก์‹œ ๋“ฑ)์—์„œ ์ „๋‹ดํ•˜๊ฒŒ ํ•˜๋Š” ๋ถ„์‚ฐ ํ†ต์‹  ์ œ์–ด ๊ธฐ์ˆ ์„ ์กฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค[78-81]. --- *Last updated: 2026-05-02* --- - [[Service-oriented-Architecture|Service-oriented-Architecture]], Microservices-Foundations, [[Scalability-in-AI-Systems|Scalability-in-AI-Systems]], API-Design-[[Principles|Principles]] - **Raw Source:** 10_Wiki/Topics/AI/Software-Architecture-Patterns.md