# [[Component-Based Architecture|Component-Based Architecture]] ## ๐Ÿ“Œ Brief Summary ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜(Component-Based [[Architecture|Architecture]], CBA)๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์‹œ์Šคํ…œ์„ ๋ชจ๋“ˆํ™”๋˜๊ณ  ๋…๋ฆฝ์ ์ด๋ฉฐ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋‹จ์œ„์ธ '์ปดํฌ๋„ŒํŠธ(Component)'๋กœ ๋‚˜๋ˆ„์–ด ๊ตฌ์ถ•ํ•˜๋Š” ์„ค๊ณ„ ๋ฐฉ๋ฒ•๋ก ์ž…๋‹ˆ๋‹ค [1, 2]. ๋ ˆ๊ณ  ๋ธ”๋ก์„ ์กฐ๋ฆฝํ•˜๋“ฏ ๊ฐ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ํฌ๊ณ  ๋ณต์žกํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์™„์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋กœ ์ธํ•ด ๊ฐœ๋ฐœ ์†๋„์™€ ์‹œ์Šคํ…œ ํ™•์žฅ์„ฑ์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค [3, 4]. ๊ฐ ์ปดํฌ๋„ŒํŠธ๋Š” ๋‚ด๋ถ€ ๋กœ์ง๊ณผ ์ƒํƒœ๋ฅผ ์บก์Аํ™”ํ•˜๊ณ  ๋ช…ํ™•ํžˆ ์ •์˜๋œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด์„œ๋งŒ ์ƒํ˜ธ์ž‘์šฉํ•˜๋„๋ก ์„ค๊ณ„๋˜์–ด, ์œ ์ง€๋ณด์ˆ˜์„ฑ๊ณผ ํŒ€ ๊ฐ„์˜ ํ˜‘์—… ํšจ์œจ์„ ๊ทน๋Œ€ํ™”ํ•ฉ๋‹ˆ๋‹ค [5, 6]. ## ๐Ÿ“– Core Content - **ํ•ต์‹ฌ ์›์น™ ๋ฐ ํŠน์ง•:** - **๋ชจ๋“ˆ์„ฑ ๋ฐ ์บก์Аํ™” ([[Modularity|Modularity]] & Encapsulation):** ์ปดํฌ๋„ŒํŠธ๋Š” ํŠน์ •ํ•œ ๋ชฉ์ ์„ ์œ„ํ•ด ๊ธฐ๋Šฅ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ด๋ถ€๋กœ ์ˆจ๊ธฐ๊ณ (์บก์Аํ™”), ์™ธ๋ถ€์— ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ์ž˜ ์ •์˜๋œ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋…ธ์ถœํ•ฉ๋‹ˆ๋‹ค [5, 7]. - **์žฌ์‚ฌ์šฉ์„ฑ ๋ฐ ๋…๋ฆฝ์„ฑ (Reusability & Independence):** ํ•œ ๋ฒˆ ๊ฐœ๋ฐœ๋œ ์ปดํฌ๋„ŒํŠธ๋Š” ์ˆ˜์ • ์—†์ด ์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ์— ์žฌ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ „์ฒด ์‹œ์Šคํ…œ์„ ํŒŒ๊ดดํ•˜์ง€ ์•Š๊ณ  ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐœ๋ฐœ, ํ…Œ์ŠคํŠธ, ๋ฐฐํฌ ๋ฐ ๊ต์ฒด๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค [8-10]. - **์ƒํ˜ธ์šด์šฉ์„ฑ ([[Interoperability|InterOperability]]):** ์„œ๋กœ ๋‹ค๋ฅธ ๊ธฐ์ˆ ์ด๋‚˜ ํ”Œ๋žซํผ์œผ๋กœ ๊ตฌ์ถ•๋œ ์ปดํฌ๋„ŒํŠธ๋ผ๋„ ํ‘œ์ค€ํ™”๋œ ์ธํ„ฐํŽ˜์ด์Šค์™€ API๋ฅผ ํ†ตํ•ด ์›ํ™œํ•˜๊ฒŒ ํ†ต์‹ ํ•˜๊ณ  ๊ฒฐํ•ฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [6, 11]. - **์•„ํ‚คํ…์ฒ˜์˜ ์ฃผ์š” ์ด์ :** - **๊ฐœ๋ฐœ ์†๋„ ํ–ฅ์ƒ ๋ฐ ๋น„์šฉ ์ ˆ๊ฐ:** ๊ธฐ์กด ์ปดํฌ๋„ŒํŠธ๋ฅผ ์žฌ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ์ž‘์„ฑํ•˜๋Š” ์ˆ˜๊ณ ๋ฅผ ๋œ์–ด ์ œํ’ˆ ์ถœ์‹œ ๊ธฐ๊ฐ„(Time-to-Market)์„ ์•ž๋‹น๊น๋‹ˆ๋‹ค [12, 13]. - **ํ™•์žฅ์„ฑ ๋ฐ ์œ ์ง€๋ณด์ˆ˜ ์šฉ์ด์„ฑ:** ์ „์ฒด ์‹œ์Šคํ…œ์„ ์žฌ๊ตฌ์„ฑํ•  ํ•„์š” ์—†์ด ํŠธ๋ž˜ํ”ฝ์ด๋‚˜ ์š”๊ตฌ์‚ฌํ•ญ์— ๋”ฐ๋ผ ํŠน์ • ์ปดํฌ๋„ŒํŠธ๋งŒ ๋…๋ฆฝ์ ์œผ๋กœ ํ™•์žฅํ•˜๊ฑฐ๋‚˜ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฒ„๊ทธ ์ˆ˜์ • ์‹œ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์„ ์ตœ์†Œํ™”ํ•ฉ๋‹ˆ๋‹ค [8, 14-16]. - **๋ณ‘๋ ฌ ๊ฐœ๋ฐœ (Parallel Development):** ์‹œ์Šคํ…œ์ด ๋ช…ํ™•ํ•˜๊ฒŒ ๋‚˜๋‰˜์–ด ์žˆ์–ด ์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ ํŒ€์ด ๋™์‹œ์— ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ถ„๋‹ดํ•˜์—ฌ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [8, 17]. - **์„ค๊ณ„ ์‹œ ๋‹น๋ฉด ๊ณผ์ œ ๋ฐ ๋‹จ์ :** - **๋ณต์žก์„ฑ ๋ฐ ์˜์กด์„ฑ ๊ด€๋ฆฌ:** ์ปดํฌ๋„ŒํŠธ์˜ ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ• ์ˆ˜๋ก ์ปดํฌ๋„ŒํŠธ ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ, ํ˜ธํ™˜์„ฑ, ๋ฒ„์ „ ๊ด€๋ฆฌ ๋“ฑ ์˜์กด์„ฑ์„ ํ†ต์ œํ•˜๊ณ  ํ†ตํ•ฉํ•˜๋Š” ๊ฒƒ์ด ๋ณต์žกํ•ด์ง‘๋‹ˆ๋‹ค [18-20]. - **์„ฑ๋Šฅ ์˜ค๋ฒ„ํ—ค๋“œ:** ์‹œ์Šคํ…œ์„ ์ง€๋‚˜์น˜๊ฒŒ ์ž‘์€ ์ปดํฌ๋„ŒํŠธ๋กœ ๋‚˜๋ˆŒ ๊ฒฝ์šฐ(Over-engineering), ์ปดํฌ๋„ŒํŠธ ๊ฐ„ ํ†ต์‹ (๋„คํŠธ์›Œํฌ ํ˜ธ์ถœ ๋ฐ RPC ๋“ฑ)์œผ๋กœ ์ธํ•œ ์ง€์—ฐ(Latency)๊ณผ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์„ฑ๋Šฅ์„ ์ €ํ•˜์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [18, 21, 22]. - **๋ณด์•ˆ ๊ด€๋ฆฌ์˜ ์–ด๋ ค์›€:** ๊ฐ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๊ฐ๊ธฐ ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์—…๋ฐ์ดํŠธ ์ฃผ๊ธฐ๋ฅผ ๊ฐ€์งˆ ๊ฒฝ์šฐ, ์ œ๋•Œ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์€ ๊ตฌ์‹ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ „์ฒด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ณด์•ˆ ์ทจ์•ฝ์ ์ด ๋  ์œ„ํ—˜์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค [23]. - **์‹ค์ œ ํ™œ์šฉ ๋ฐ ๋Œ€์•ˆ ์•„ํ‚คํ…์ฒ˜:** - **ํ™œ์šฉ ์‚ฌ๋ก€:** ์‚ฌ์šฉ์ž ๋กœ๊ทธ์ธ, ๊ฒฐ์ œ ๊ฒŒ์ดํŠธ์›จ์ด, ์‡ผํ•‘์นดํŠธ์™€ ๊ฐ™์€ ๋ชจ๋“ˆ์ด ๋…๋ฆฝ์ ์œผ๋กœ ํ•„์š”ํ•œ ์ „์ž์ƒ๊ฑฐ๋ž˜ ํ”Œ๋žซํผ, CRM ์‹œ์Šคํ…œ, ๋ชจ๋ฐ”์ผ ์•ฑ ๋“ฑ์—์„œ ํ™œ๋ฐœํžˆ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค [24, 25]. ํ”„๋ก ํŠธ์—”๋“œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(React, Angular, Vue.js)๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฐฑ์—”๋“œ ํ”Œ๋žซํผ(Java EE, .NET ๋“ฑ)์—์„œ๋„ ์ด ๋ฐฉ์‹์„ ์ฑ„ํƒํ•˜๋ฉฐ, PayPal, Walmart, Spotify, Uber ๋“ฑ์˜ ๊ธฐ์—…๋“ค์ด ์ด ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋„์ž…ํ•ด ํ™•์žฅ์„ฑ์„ ์ž…์ฆํ–ˆ์Šต๋‹ˆ๋‹ค [3, 26, 27]. - **๋Œ€์•ˆ ์•„ํ‚คํ…์ฒ˜:** ํ”„๋กœ์ ํŠธ์˜ ๊ทœ๋ชจ์™€ ํŒ€ ๊ตฌ์กฐ์— ๋”ฐ๋ผ ํ•˜๋‚˜์˜ ์ฝ”๋“œ๋ฒ ์ด์Šค๋กœ ๊ตฌ์„ฑ๋œ Monolithic Architecture, ์„œ๋น„์Šค ๋‹จ์œ„๋กœ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ˜ Microservices Architecture, ๊ธฐ์—… ํ™˜๊ฒฝ์— ๋งž์ถ˜ Service-Oriented Architecture (SOA), Layered Architecture ๋“ฑ๊ณผ ๋น„๊ต๋˜๊ฑฐ๋‚˜ ํ˜ผํ•ฉ๋˜์–ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค [28-31]. ## ๐Ÿ”— Knowledge Connections - **Related Topics:** [[Modularity|Modularity]], Encapsulation, Monolithic Architecture, Microservices Architecture, Service-Oriented Architecture (SOA) - **Projects/Contexts:** React, Angular, Vue.js ๊ธฐ๋ฐ˜ ํ”„๋ก ํŠธ์—”๋“œ UI ๊ตฌ์ถ•, ์ „์ž์ƒ๊ฑฐ๋ž˜ ํ”Œ๋žซํผ ๋ฐ CRM ์‹œ์Šคํ…œ ์„ค๊ณ„, Java EE ๋ฐ .NET ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ - **Contradictions/Notes:** ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜๋Š” ์œ ์—ฐ์„ฑ๊ณผ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•˜์ง€๋งŒ, ๋ชจ๋“ˆํ™”๋ฅผ ๊ทน๋Œ€ํ™”ํ•˜๋ ค๋Š” ๋ชฉ์ ์œผ๋กœ ์‹œ์Šคํ…œ์„ ๋„ˆ๋ฌด ์ž˜๊ฒŒ ์ชผ๊ฐœ๋Š” ๊ฒƒ(Over-engineering)์€ ์˜คํžˆ๋ ค ํ†ตํ•ฉ ๋น„์šฉ๊ณผ ํ†ต์‹  ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ณ  ๋””๋ฒ„๊น…์„ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ ์ ˆํ•œ ์„ธ๋ถ„ํ™”(Granularity) ์ˆ˜์ค€์„ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค [18, 22, 32]. --- *Last updated: 2026-04-25*