--- category: Unified tags: [auto-consolidated, technical-documentation] title: [[Component-Based Architecture|Component-Based Architecture]] last_updated: 2026-05-02 --- # [[Component-Based Architecture|Component-Based Architecture]] ## ๐Ÿ“Œ Brief Summary ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜(Component-Based [[Architecture|Architecture]], CBA)๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์‹œ์Šคํ…œ์„ ๋ชจ๋“ˆํ™”๋˜๊ณ  ๋…๋ฆฝ์ ์ด๋ฉฐ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋‹จ์œ„์ธ '์ปดํฌ๋„ŒํŠธ(Component)'๋กœ ๋‚˜๋ˆ„์–ด ๊ตฌ์ถ•ํ•˜๋Š” ์„ค๊ณ„ ๋ฐฉ๋ฒ•๋ก ์ž…๋‹ˆ๋‹ค [1, 2]. ๋ ˆ๊ณ  ๋ธ”๋ก์„ ์กฐ๋ฆฝํ•˜๋“ฏ ๊ฐ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ํฌ๊ณ  ๋ณต์žกํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์™„์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋กœ ์ธํ•ด ๊ฐœ๋ฐœ ์†๋„์™€ ์‹œ์Šคํ…œ ํ™•์žฅ์„ฑ์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค [3, 4]. ๊ฐ ์ปดํฌ๋„ŒํŠธ๋Š” ๋‚ด๋ถ€ ๋กœ์ง๊ณผ ์ƒํƒœ๋ฅผ ์บก์Аํ™”ํ•˜๊ณ  ๋ช…ํ™•ํžˆ ์ •์˜๋œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด์„œ๋งŒ ์ƒํ˜ธ์ž‘์šฉํ•˜๋„๋ก ์„ค๊ณ„๋˜์–ด, ์œ ์ง€๋ณด์ˆ˜์„ฑ๊ณผ ํŒ€ ๊ฐ„์˜ ํ˜‘์—… ํšจ์œจ์„ ๊ทน๋Œ€ํ™”ํ•ฉ๋‹ˆ๋‹ค [5, 6]. --- ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜๋Š” ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(UI)๋ฅผ ๋ฒ„ํŠผ, ์นด๋“œ, ๋ชจ๋‹ฌ๊ณผ ๊ฐ™์ด ์–ด๋””์„œ๋‚˜ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋…๋ฆฝ์ ์ธ ๋ธ”๋ก(์ปดํฌ๋„ŒํŠธ)์œผ๋กœ ๋‚˜๋ˆ„์–ด ๊ตฌ์ถ•ํ•˜๋Š” ์„ค๊ณ„ ๋ฐฉ์‹์ด๋‹ค [1, 2]. ์ด ์ ‘๊ทผ๋ฒ•์€ ์ฝ”๋“œ๋ฅผ ํ•œ ๋ฒˆ๋งŒ ์ž‘์„ฑํ•˜์—ฌ ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ์‚ฌ์šฉํ•˜๊ฒŒ ํ•จ์œผ๋กœ์จ ์ฝ”๋“œ ์ค‘๋ณต์„ ์ค„์ด๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „์ฒด์˜ UI ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๊ฒŒ ํ•œ๋‹ค [1]. ๋ชจ๋˜ ์›น ๊ฐœ๋ฐœ์—์„œ๋Š” ๋””์ž์ธ ์‹œ์Šคํ…œ, ์บก์Аํ™”๋œ CSS ์Šคํƒ€์ผ๋ง, ๊ทธ๋ฆฌ๊ณ  ๋ฐ˜์‘ํ˜• ๋™์ž‘์„ ํŽ˜์ด์ง€ ๋‹จ์œ„๊ฐ€ ์•„๋‹Œ ์ปดํฌ๋„ŒํŠธ ๋‹จ์œ„๋กœ ๊ฒฐํ•ฉํ•˜์—ฌ ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์˜ ์œ ์ง€๋ณด์ˆ˜์„ฑ๊ณผ ํ™•์žฅ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•˜๋Š” ๋ฐ ํ•ต์‹ฌ์ ์ธ ์—ญํ• ์„ ํ•œ๋‹ค [3-5]. ## ๐Ÿ“– 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]. --- * **๋…๋ฆฝ์„ฑ๊ณผ ์žฌ์‚ฌ์šฉ์„ฑ์˜ ์›์น™** ์ปดํฌ๋„ŒํŠธ๋Š” ์ฃผ๋ณ€์˜ DOM ๊ตฌ์กฐ์— ์˜์กดํ•˜์ง€ ์•Š๊ณ  ๋…๋ฆฝ์ ์œผ๋กœ ๊ธฐ๋Šฅํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์–ด์•ผ ํ•œ๋‹ค [2, 6]. React, Vue, Angular์™€ ๊ฐ™์€ ํ˜„๋Œ€ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์ด๋Ÿฌํ•œ ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋”ฐ๋ฅด๋ฉฐ, ์‚ฌ์šฉ์ž ์ •์˜ ํ›…(Hooks)์ด๋‚˜ ์ปดํฌ๋„ŒํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ถ„๋ฆฌ๋ฅผ ํ†ตํ•ด ํ”„๋กœ์ ํŠธ๋ฅผ ๋”์šฑ ์ž‘๊ณ  ๊น”๋”ํ•˜๊ฒŒ ์œ ์ง€๋ณด์ˆ˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š”๋‹ค [1, 6, 7]. * **์ปดํฌ๋„ŒํŠธ ์ค‘์‹ฌ์˜ CSS ์Šคํƒ€์ผ๋ง(Scoping) ์ „๋žต** ์ „ํ†ต์ ์ธ CSS์˜ ๊ฐ€์žฅ ํฐ ์ทจ์•ฝ์ ์ธ ์ „์—ญ ์Šค์ฝ”ํ”„(Global Scope) ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ปดํฌ๋„ŒํŠธ ๋‹จ์œ„์˜ ์Šคํƒ€์ผ๋ง์ด ๋ฐœ์ „ํ•ด ์™”๋‹ค. * **[[BEM (Block Element Modifier)|BEM (Block Element Modifier]]:** BEM์˜ 'Block'์€ ๋…๋ฆฝ์ ์ด๊ณ  ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, ์Šคํƒ€์ผ์ด ๊นŠ๊ฒŒ ์ค‘์ฒฉ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ์ปดํฌ๋„ŒํŠธ์˜ ๊ฒฝ๊ณ„๋ฅผ ๋ช…ํ™•ํžˆ ํ•˜์—ฌ ๋ชจ๋“ˆํ™”๋ฅผ ์ด๋ฃฌ๋‹ค [2, 6, 8]. * **[[CSS Modules|CSS Modules]] & CSS-in-JS:** ๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ƒํƒœ๊ณ„์—์„œ๋Š” ๋นŒ๋“œ ํƒ€์ž„์— ๊ณ ์œ ํ•œ ํด๋ž˜์Šค๋ช…์„ ์ƒ์„ฑํ•˜์—ฌ ์Šคํƒ€์ผ ์ถฉ๋Œ์„ ๋ฐฉ์ง€ํ•˜๋Š” CSS Modules๋‚˜, ์ปดํฌ๋„ŒํŠธ ๋กœ์ง๊ณผ ์Šคํƒ€์ผ์„ ๋™์ผํ•œ ๊ณต๊ฐ„์— ์œ„์น˜์‹œํ‚ค๋Š” CSS-in-JS([[styled-components|styled-components]] ๋“ฑ)๋ฅผ ํ†ตํ•ด ์ปดํฌ๋„ŒํŠธ์˜ ์™„๋ฒฝํ•œ ์บก์Аํ™”์™€ ์ด๋™์„ฑ(portability)์„ ํ™•๋ณดํ•œ๋‹ค [5, 9-13]. * **[[Tailwind CSS|Tailwind CSS]]:** ์œ ํ‹ธ๋ฆฌํ‹ฐ ์šฐ์„ (Utility-first) ํ”„๋ ˆ์ž„์›Œํฌ์ธ Tailwind๋Š” React ๋“ฑ์˜ ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€ JSX/HTML์— ์ง์ ‘ ์Šคํƒ€์ผ์„ ์กฐํ•ฉํ•จ์œผ๋กœ์จ, ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ญ์ œํ•  ๋•Œ ์Šคํƒ€์ผ๋„ ํ•จ๊ป˜ ์ œ๊ฑฐ๋˜๋„๋ก ํ•˜์—ฌ ๊ณ ์•„(orphaned) CSS๊ฐ€ ๋‚จ๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•œ๋‹ค [14, 15]. * **์ปดํฌ๋„ŒํŠธ ๋‹จ์œ„์˜ ๋ฐ˜์‘ํ˜• ์„ค๊ณ„ ([[Container Queries|Container Queries]])** ํ˜„๋Œ€์˜ ๋ฐ˜์‘ํ˜• ์›น ๋””์ž์ธ์€ "ํŽ˜์ด์ง€๊ฐ€ ์•„๋‹Œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์„ค๊ณ„ํ•˜๋ผ"๋Š” ์›์น™์œผ๋กœ ์ง„ํ™”ํ–ˆ๋‹ค [3]. ๊ธฐ์กด์˜ ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋Š” ๋ธŒ๋ผ์šฐ์ €์˜ ๋ทฐํฌํŠธ ํฌ๊ธฐ์— ์˜์กดํ–ˆ์ง€๋งŒ, **์ปจํ…Œ์ด๋„ˆ ์ฟผ๋ฆฌ(Container Queries)**๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ž์‹ ์ด ๋ฐฐ์น˜๋œ ๋ถ€๋ชจ ์ปจํ…Œ์ด๋„ˆ์˜ ๊ฐ€์šฉ ๋„ˆ๋น„์— ๋งž์ถฐ ์Šค์Šค๋กœ ๋ ˆ์ด์•„์›ƒ์„ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค [16-19]. ์ด๋Š” ๋ฐ˜์‘ํ˜• ๋™์ž‘์„ ํŽ˜์ด์ง€๊ฐ€ ์•„๋‹Œ ์ปดํฌ๋„ŒํŠธ ๊ณ ์œ ์˜ ์†์„ฑ์œผ๋กœ ๋งŒ๋“ค์–ด, ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์‚ฌ์ด๋“œ๋ฐ”๋‚˜ ์ „์ฒด ํ™”๋ฉด ์–ด๋””์— ๋ฐฐ์น˜๋˜๋“  ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋„๋ก ํ•œ๋‹ค [4, 16, 20]. * **๋””์ž์ธ ์‹œ์Šคํ…œ๊ณผ์˜ ํ†ตํ•ฉ ([[Design Tokens|Design Tokens]])** ๋””์ž์ธ ํ† ํฐ์€ ๊ธ€๋กœ๋ฒŒ ํ† ํฐ, ์˜๋ฏธ๋ก ์ (Alias) ํ† ํฐ, ๊ทธ๋ฆฌ๊ณ  **์ปดํฌ๋„ŒํŠธ ํ† ํฐ(Component Tokens)**์˜ ๊ณ„์ธต์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค [21]. `--button-bg: var(--color-primary)`์™€ ๊ฐ™์ด ํŠน์ • ์ปดํฌ๋„ŒํŠธ ์ „์šฉ์œผ๋กœ ์Šค์ฝ”ํ•‘๋œ ํ† ํฐ์„ ์‚ฌ์šฉํ•˜๋ฉด, ์ „์—ญ ์‹œ์Šคํ…œ์˜ ์ผ๊ด€์„ฑ์„ ํ•ด์น˜์ง€ ์•Š์œผ๋ฉด์„œ๋„ ๊ฐœ๋ณ„ ์ปดํฌ๋„ŒํŠธ์˜ ์Šคํƒ€์ผ์„ ์„ธ๋ฐ€ํ•˜๊ฒŒ ์ œ์–ดํ•˜๊ณ  ๋‹คํฌ ๋ชจ๋“œ๋‚˜ ํ…Œ๋งˆ ๋ณ€๊ฒฝ์— ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋‹ค [21-23]. ## โš–๏ธ Trade-offs & Caveats No trade-offs available. ## ๐Ÿ”— 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* --- - **Related Topics:** [[BEM|BEM]], CSS Modules, CSS-in-JS, [[Tailwind CSS|Tailwind CSS]], ๋””์ž์ธ ์‹œ์Šคํ…œ(DesignSystems), [[Container Queries|Container Queries]] - **Projects/Contexts:** [[แ„ƒแ…ขแ„€แ…ฒแ„†แ…ฉ แ„‘แ…ณแ„…แ…ฉแ†ซแ„แ…ณแ„‹แ…ฆแ†ซแ„ƒแ…ณ แ„‘แ…ณแ„…แ…ฉแ„Œแ…ฆแ†จแ„แ…ณ(Large Frontend Projects)|๋Œ€๊ทœ๋ชจ ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋กœ์ ํŠธ(Large Frontend Projects]], ๋ชจ๋˜ React/Vue ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์กฐ - **Contradictions/Notes:** ์ปดํฌ๋„ŒํŠธ ์Šคํƒ€์ผ๋ง ๋ฐฉ์‹์—์„œ Tailwind CSS๋Š” ๊ฐœ๋ฐœ ์†๋„๋ฅผ ๋†’์ด๊ณ  ์ปดํฌ๋„ŒํŠธ์™€ ์Šคํƒ€์ผ์„ ํ•จ๊ป˜ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ JSX ๋งˆํฌ์—…์ด ๋งค์šฐ ๊ธธ์–ด์งˆ ์ˆ˜ ์žˆ๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ๋ฐ˜๋ฉด, CSS Modules๋‚˜ [[SCSS|SCSS]]๋Š” ๋งˆํฌ์—…์„ ๊น”๋”ํ•˜๊ฒŒ ์œ ์ง€ํ•˜๊ณ  ๋ณต์žกํ•œ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๋‹ค๋ฃจ๊ธฐ ์ข‹์œผ๋‚˜, ์Šคํƒ€์ผ ํŒŒ์ผ๊ณผ ์ปดํฌ๋„ŒํŠธ ํŒŒ์ผ์„ ์˜ค๊ฐ€์•ผ ํ•˜๋Š” ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ(Context switching) ๋น„์šฉ์ด ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ํ”„๋กœ์ ํŠธ์˜ ์„ฑ๊ฒฉ๊ณผ ํŒ€์˜ ๊ตฌ์„ฑ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ์„ ํƒ์ด ํ•„์š”ํ•˜๋‹ค [12, 14, 15, 24, 25]. --- *Last updated: 2026-04-26*