# [[Component-Based Architecture (CBA)|Component-Based Architecture (CBA]] ## ๐Ÿ“Œ Brief Summary ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜([[Component-Based Architecture|Component-Based Architecture]], CBA)๋Š” ๋…๋ฆฝ์ ์ด๊ณ  ๋ชจ๋“ˆํ™”๋œ, ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์†Œํ”„ํŠธ์›จ์–ด ์ปดํฌ๋„ŒํŠธ๋“ค์„ ์กฐ๋ฆฝํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๋Š” ์ตœ์‹  ์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„ ํŒจ๋Ÿฌ๋‹ค์ž„์ž…๋‹ˆ๋‹ค[1-3]. ๋ ˆ๊ณ  ๋ธ”๋ก์„ ๋งž์ถ”๋“ฏ ๊ฐ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ํŠน์ • ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ๋ช…ํ™•ํžˆ ์ •์˜๋œ ์ธํ„ฐํŽ˜์ด์Šค(API)๋ฅผ ํ†ตํ•ด ์„œ๋กœ ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค[2, 4]. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๊ฐœ๋ฐœํ•˜๋Š” ๋Œ€์‹  ํ‘œ์ค€ํ™”๋œ ๋ถ€ํ’ˆ์„ ์žฌ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ด๊ณ  ๊ฐœ๋ฐœ ์†๋„๋ฅผ ์•ž๋‹น๊ธฐ๋ฉฐ ๋›ฐ์–ด๋‚œ ํ™•์žฅ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค[4-6]. ## ๐Ÿ“– Core ์†Œ์Šค Content * **์ปดํฌ๋„ŒํŠธ์˜ ์ •์˜ ๋ฐ ํ•ต์‹ฌ ํŠน์ง•** ์ปดํฌ๋„ŒํŠธ๋Š” ํŠน์ • ๊ธฐ๋Šฅ์„ ์บก์Аํ™”ํ•œ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ณ  ๋…๋ฆฝ์ ์ธ ์†Œํ”„ํŠธ์›จ์–ด ๋‹จ์œ„์ž…๋‹ˆ๋‹ค[7]. ์ฃผ์š” ํŠน์ง•์œผ๋กœ๋Š” ๋‚ด๋ถ€ ๊ตฌํ˜„๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆจ๊ธฐ๊ณ  ํ•„์š”ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋งŒ ๋…ธ์ถœํ•˜๋Š” **์บก์Аํ™”(Encapsulation)**, ์—ฌ๋Ÿฌ ์–ธ์–ด๋‚˜ ํ”Œ๋žซํผ ๊ฐ„์—๋„ ํ‘œ์ค€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋Š” **์ƒํ˜ธ ์šด์šฉ์„ฑ([[Interoperability|InterOperability]])**, ๋” ํฐ ์‹œ์Šคํ…œ์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์‰ฝ๊ฒŒ ํ”Œ๋Ÿฌ๊ทธ์ธ ํ•  ์ˆ˜ ์žˆ๋Š” **์กฐ๋ฆฝ์„ฑ(Composability)**, ๊ทธ๋ฆฌ๊ณ  ๊ธฐ์กด ๊ธฐ๋Šฅ์„ ์†์ƒ์‹œํ‚ค์ง€ ์•Š๊ณ  ๊ต์ฒดํ•  ์ˆ˜ ์žˆ๋Š” **๋Œ€์ฒด ๊ฐ€๋Šฅ์„ฑ(Replaceability)**์ด ์žˆ์Šต๋‹ˆ๋‹ค[8-13]. * **์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐœ์˜ ์ฃผ์š” ์žฅ์ ** * **๊ฐœ๋ฐœ ์†๋„ ํ–ฅ์ƒ ๋ฐ ๋น„์šฉ ์ ˆ๊ฐ(Faster Time-to-Market):** ๊ธฐ์กด ์ปดํฌ๋„ŒํŠธ๋ฅผ ์žฌ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ˜๋ณต์ ์ธ ์ฝ”๋”ฉ์„ ๋ฐฉ์ง€ํ•จ์œผ๋กœ์จ ์ œํ’ˆ ์ถœ์‹œ๋ฅผ ๊ฐ€์†ํ™”ํ•˜๊ณ  ๊ฐœ๋ฐœ ๋น„์šฉ์„ ๋‚ฎ์ถฅ๋‹ˆ๋‹ค[14, 15]. * **ํ™•์žฅ์„ฑ([[Scalability|Scalability]]):** ํŠธ๋ž˜ํ”ฝ์ด๋‚˜ ์š”๊ตฌ์‚ฌํ•ญ์ด ์ฆ๊ฐ€ํ•  ๋•Œ ์‹œ์Šคํ…œ ์ „์ฒด๊ฐ€ ์•„๋‹Œ ์žฅ๋ฐ”๊ตฌ๋‹ˆ, ๊ฒฐ์ œ ๋“ฑ ํŠน์ • ์ปดํฌ๋„ŒํŠธ๋งŒ ๊ฐœ๋ณ„์ ์œผ๋กœ ์ถ”๊ฐ€ ๋ฐ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค[16-18]. * **์œ ์ง€๋ณด์ˆ˜ ๋ฐ ๋ณ‘๋ ฌ ๊ฐœ๋ฐœ(Maintainability & Collaboration):** ํ•œ ์ปดํฌ๋„ŒํŠธ์˜ ๋ฒ„๊ทธ ์ˆ˜์ •์ด๋‚˜ ์—…๋ฐ์ดํŠธ๊ฐ€ ์ „์ฒด ์‹œ์Šคํ…œ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์„ ์ตœ์†Œํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ์—ฌ๋Ÿฌ ํŒ€์ด ์„œ๋กœ ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ(ํ”„๋ก ํŠธ์—”๋“œ, ๋ฐฑ์—”๋“œ ๋“ฑ)๋ฅผ ๋™์‹œ์— ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์–ด ํ˜‘์—…์ด ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค[14, 16, 18-20]. * **์„ค๊ณ„ ์›์น™ ๋ฐ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•** CBA ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•  ๋•Œ๋Š” ๋ชจ๋“ˆ์„ฑ, ์ถ”์ƒํ™”, ๊ทธ๋ฆฌ๊ณ  ์—ญํ• ์— ๋”ฐ๋ฅธ '๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ([[_แ„‚แ…ฌแ„‹แ…ช แ„‘แ…กแ†ฏแ„ƒแ…กแ„…แ…ตแ„‹แ…ด แ„‡แ…ฎแ†ซแ„…แ…ต_ - แ„€แ…ชแ†ซแ„‰แ…ตแ†ทแ„‰แ…กแ„‹แ…ด แ„‡แ…ฎแ†ซแ„…แ…ต (Separation of Concerns)|Separation of Concerns]])'๋ฅผ ์›์น™์œผ๋กœ ์‚ผ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค[8, 21]. ์‹œ์Šคํ…œ์˜ ๊ธฐ๋Šฅ ๋ฐ ๋น„๊ธฐ๋Šฅ์  ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ถ„์„ํ•œ ํ›„ ๋„๋ฉ”์ธ ์ฃผ๋„ ์„ค๊ณ„(DDD) ๋“ฑ์˜ ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•ด ์ปดํฌ๋„ŒํŠธ ๊ฒฝ๊ณ„๋ฅผ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค[22, 23]. ์ดํ›„ ๋ช…ํ™•ํ•œ API ๋ฐ ํ†ต์‹  ํ”„๋กœํ† ์ฝœ(์˜ˆ: REST, gRPC ๋“ฑ)์„ ์„ค๊ณ„ํ•˜๊ณ , ๊ฐ๊ฐ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐœ๋ฐœ ๋ฐ ์œ ๋‹› ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•œ ๋’ค, CI/CD ํŒŒ์ดํ”„๋ผ์ธ์„ ํ†ตํ•ด ํ†ตํ•ฉ ๋ฐ ๋ฐฐํฌ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค[24-26]. * **๊ตฌํ˜„ ์‹œ ์ง๋ฉดํ•˜๋Š” ํ•œ๊ณ„ ๋ฐ ๊ณผ์ œ** * **์ดˆ๊ธฐ ์„ค๊ณ„์˜ ๋ณต์žก์„ฑ๊ณผ ํ†ตํ•ฉ ์˜ค๋ฒ„ํ—ค๋“œ:** ์‹œ์Šคํ…œ์„ ๋ชจ๋“ˆํ™”ํ•˜๊ณ  ์ธํ„ฐํŽ˜์ด์Šค์™€ ์˜์กด์„ฑ์„ ๋ช…ํ™•ํžˆ ์ •์˜ํ•˜๋Š” ์ดˆ๊ธฐ ๊ณ„ํš ๋‹จ๊ณ„๊ฐ€ ๊นŒ๋‹ค๋กญ์Šต๋‹ˆ๋‹ค[27-29]. ์„œ๋กœ ๋‹ค๋ฅธ ํŒ€์ด ๊ฐœ๋ฐœํ•œ ์ปดํฌ๋„ŒํŠธ ๊ฐ„์˜ ํ†ต์‹ ๊ณผ ๋งค๋„๋Ÿฌ์šด ํ†ตํ•ฉ์„ ๋ณด์žฅํ•˜๋Š” ๊ฒƒ์—๋„ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค[29, 30]. * **์„ฑ๋Šฅ ์ €ํ•˜ ๋ฐ ์˜์กด์„ฑ ๊ด€๋ฆฌ:** ๋„คํŠธ์›Œํฌ ํ˜ธ์ถœ์ด๋‚˜ ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹  ๋“ฑ ์ปดํฌ๋„ŒํŠธ ์ƒํ˜ธ์ž‘์šฉ์œผ๋กœ ์ธํ•ด ์„ฑ๋Šฅ ์˜ค๋ฒ„ํ—ค๋“œ์™€ ์ง€์—ฐ(Latency)์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค[27, 30, 31]. ๋˜ํ•œ, ๋‹ค์ˆ˜์˜ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋‹ค์–‘ํ•œ ๋ฒ„์ „์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์˜์กดํ•  ๊ฒฝ์šฐ ๋ฒ„์ „ ์ถฉ๋Œ ๋ฐ ๊ด€๋ฆฌ๊ฐ€ ๋งค์šฐ ๋ณต์žกํ•ด์ง‘๋‹ˆ๋‹ค[31, 32]. * **๋ณด์•ˆ ๋ฐ ๊ณผ์ž‰ ์—”์ง€๋‹ˆ์–ด๋ง ์œ„ํ—˜:** ๊ฐ ์ปดํฌ๋„ŒํŠธ์˜ ์—…๋ฐ์ดํŠธ ์ฃผ๊ธฐ๊ฐ€ ๋‹ฌ๋ผ ์ตœ์‹ ํ™”๋˜์ง€ ์•Š์€ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ „์ฒด ์‹œ์Šคํ…œ์˜ ๋ณด์•ˆ ์ทจ์•ฝ์ ์ด ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ[33], ์œ ์—ฐ์„ฑ๋งŒ์„ ์ถ”๊ตฌํ•˜๋‹ค ๋ณด๋ฉด ์‹œ์Šคํ…œ์„ ๋„ˆ๋ฌด ์ž˜๊ฒŒ ์ชผ๊ฐœ์–ด ๊ณผ์ž‰ ์—”์ง€๋‹ˆ์–ด๋ง(Over-engineering)์œผ๋กœ ์ด์–ด์งˆ ์œ„ํ—˜๋„ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค[34]. ## ๐Ÿ”— Knowledge Connections - **Related Topics:** Microservices Architecture, Service-Oriented Architecture (SOA), Monolithic Architecture, Object-Oriented Architecture - **Projects/Contexts:** React, Angular, Vue.js, PayPal, Spotify, Uber, Walmart - **Contradictions/Notes:** ์†Œ์Šค์— ๋”ฐ๋ฅด๋ฉด, ๊ฐ์ฒด ์ง€ํ–ฅ ์•„ํ‚คํ…์ฒ˜(Object-Oriented Architecture)์™€ CBA๋Š” ์›์น™์„ ์ผ๋ถ€ ๊ณต์œ ํ•˜์ง€๋งŒ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์ฒด ์ง€ํ–ฅ ์•„ํ‚คํ…์ฒ˜๊ฐ€ ๋‹จ์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด์—์„œ ๋ฐ์ดํ„ฐ์™€ ๋™์ž‘์„ ์บก์Аํ™”ํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘”๋‹ค๋ฉด, CBA๋Š” ์—ฌ๋Ÿฌ ์‹œ์Šคํ…œ ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „๋ฐ˜์—์„œ ์ƒํ˜ธ์ž‘์šฉํ•˜๊ณ  ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋…๋ฆฝ์ ์ธ ๋‹จ์œ„ ์ƒ์„ฑ์„ ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค[35]. ๋˜ํ•œ ๊ธฐ์กด์˜ ๋ชจ๋†€๋ฆฌ์‹ ์•„ํ‚คํ…์ฒ˜(Monolithic Architecture)๋Š” ์‹œ์Šคํ…œ ์ „์ฒด๋ฅผ ํ•˜๋‚˜์˜ ์ฝ”๋“œ๋ฒ ์ด์Šค๋กœ ๋ฌถ์–ด ํ™•์žฅ ๋ฐ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์–ด๋ ต์ง€๋งŒ, CBA๋Š” ๋А์Šจํ•˜๊ฒŒ ๊ฒฐํ•ฉ๋œ ๋ชจ๋“ˆ์„ ํ†ตํ•ด ๋…๋ฆฝ์ ์ธ ๋ฐฐํฌ์™€ ๋ณ‘๋ ฌ ๊ฐœ๋ฐœ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค[36, 37]. --- *Last updated: 2026-04-25*