--- category: Unified tags: [auto-consolidated, technical-documentation] title: [[Design Systems|DesignSystems]] last_updated: 2026-05-02 --- # [[Design Systems|DesignSystems]] ## ๐Ÿ“Œ Brief Summary ๋””์ž์ธ ์‹œ์Šคํ…œ(Design Systems)์€ ์ƒ‰์ƒ, ๊ฐ„๊ฒฉ ๋“ฑ์˜ ์‹œ๊ฐ์  ๋””์ž์ธ ์ •๋ณด๋ฅผ ๋‹ด์€ ๋””์ž์ธ ํ† ํฐ([[Design Tokens|Design Tokens]])๊ณผ ๊ทœ์น™, ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ปดํฌ๋„ŒํŠธ๋“ค์˜ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค[1]. ์ด๋Š” ์—”์ง€๋‹ˆ์–ด, ๋””์ž์ด๋„ˆ, ํ”„๋กœ๋•ํŠธ ๋งค๋‹ˆ์ €๊ฐ€ ์ผ๊ด€์„ฑ ์žˆ๊ณ  ์ ‘๊ทผ์„ฑ์ด ๋›ฐ์–ด๋‚œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์œผ๋กœ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ๊ณตํ†ต ์–ธ์–ด ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค[2]. ๋””์ž์ธ ์‹œ์Šคํ…œ์„ ๋„์ž…ํ•˜๋ฉด ์Šคํƒ€์ผ์˜ ํŒŒํŽธํ™”๋ฅผ ๋ง‰๊ณ , ๋‹คํฌ ๋ชจ๋“œ๋‚˜ ๋‹ค์ค‘ ๋ธŒ๋žœ๋“œ ํ…Œ๋งˆ์™€ ๊ฐ™์€ ๊ธ€๋กœ๋ฒŒ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋Ÿฐํƒ€์ž„ ๋˜๋Š” ๋นŒ๋“œ ํƒ€์ž„์— ์•ˆ์ „ํ•˜๊ณ  ๋™์ ์œผ๋กœ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค[3-5]. --- ๋””์ž์ธ ์‹œ์Šคํ…œ์€ ๋ช…ํ™•ํ•œ ํ‘œ์ค€์— ๋”ฐ๋ผ ๊ตฌ์„ฑ๋˜์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ปดํฌ๋„ŒํŠธ์˜ ๋ชจ์Œ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๋ธŒ๋žœ๋“œ์˜ ์‹œ๊ฐ์  ์ •์ฒด์„ฑ์„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•œ ๊ฒƒ์ด๋ฉฐ, ๋””์ž์ธ๊ณผ ์—”์ง€๋‹ˆ์–ด๋ง ๊ฐ„์˜ ๊ณตํ†ต ์–ธ์–ด ๋ฐ ํ†ต์‹  ํ”„๋กœํ† ์ฝœ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋””์ž์ธ ์‹œ์Šคํ…œ์„ ํ™œ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ ์ œํ’ˆ๊ณผ ํ”Œ๋žซํผ ์ „๋ฐ˜์— ๊ฑธ์ณ ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•˜๊ณ , ์—…๋ฐ์ดํŠธ์™€ ๋ฆฌ๋ธŒ๋žœ๋”ฉ์„ ์šฉ์ดํ•˜๊ฒŒ ํ•˜๋ฉฐ, ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•˜์—ฌ ๋Œ€๊ทœ๋ชจ ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋กœ์ ํŠธ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. --- ๋””์ž์ธ ์‹œ์Šคํ…œ([[Design Systems|Design Systems]])์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด ์กฐ๋ฆฝํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…ํ™•ํ•œ ํ‘œ์ค€์— ์˜ํ•ด ์•ˆ๋‚ด๋˜๋Š” ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ปดํฌ๋„ŒํŠธ์˜ ๋ชจ์Œ์ž…๋‹ˆ๋‹ค [1]. ์ด๋Š” ๋””์ž์ธ๊ณผ ์—”์ง€๋‹ˆ์–ด๋ง ๊ฐ„์˜ ๊ณตํ†ต ์–ธ์–ด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์ œํ’ˆ๊ณผ ํ”Œ๋žซํผ ์ „๋ฐ˜์—์„œ ์‹œ๊ฐ์  ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•˜๊ณ , ๊ฐœ๋ฐœ ๋ฐ ์œ ์ง€๋ณด์ˆ˜ ์›Œํฌํ”Œ๋กœ์šฐ์˜ ์†๋„๋ฅผ ํš๊ธฐ์ ์œผ๋กœ ๋†’์ด๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค [1-3]. ์ƒ‰์ƒ, ๊ฐ„๊ฒฉ, ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ์™€ ๊ฐ™์ด ์‹œ๊ฐ์  ๋””์ž์ธ์˜ ์›์ž ๋‹จ์œ„์ธ '๋””์ž์ธ ํ† ํฐ([[Design Tokens|Design Tokens]])'์„ ๊ธฐ๋ณธ ๋นŒ๋”ฉ ๋ธ”๋ก์œผ๋กœ ์‚ผ์•„ ์ „์ฒด ์‹œ์Šคํ…œ์„ ๊ตฌ๋™ํ•ฉ๋‹ˆ๋‹ค [1]. ## ๐Ÿ“– Core Content * **๋””์ž์ธ ํ† ํฐ(Design Tokens)์˜ ๊ณ„์ธต์  ๊ตฌ์กฐ**: ํ™•์žฅ ๊ฐ€๋Šฅํ•œ UI ์•„ํ‚คํ…์ฒ˜์˜ ํ•ต์‹ฌ์ธ ๋””์ž์ธ ํ† ํฐ์€ JSON์ด๋‚˜ YAML๊ณผ ๊ฐ™์€ ๊ธฐ๊ณ„ ํŒ๋…ํ˜• ํ˜•์‹์œผ๋กœ ์ €์žฅ๋˜์–ด ์ฝ”๋“œ์™€ ๋””์ž์ธ ํˆด์„ ์ž๋™์œผ๋กœ ๋™๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค[4, 6]. ์œ ์ง€๋ณด์ˆ˜์„ฑ๊ณผ ํ™•์žฅ์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ํ† ํฐ์€ 3๋‹จ๊ณ„ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ์ฆ‰, ์ˆœ์ˆ˜ ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ธฐ๋ณธ ํ† ํฐ(Primitive/Base Tokens), ์‚ฌ์šฉ ๋ชฉ์ ๊ณผ ๋งฅ๋ฝ์„ ๋ถ€์—ฌํ•œ ์‹œ๋งจํ‹ฑ ํ† ํฐ(Semantic Tokens), ๊ฐœ๋ณ„ ์ปดํฌ๋„ŒํŠธ ๋ณ€ํ˜•์— ์“ฐ์ด๋Š” ์ปดํฌ๋„ŒํŠธ ํ† ํฐ(Component Tokens)์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค[7-12]. * **๋ฆฌ์•กํŠธ(React) ์Šคํƒ€์ผ๋ง ํŒจ๋Ÿฌ๋‹ค์ž„ ๋น„๊ต**: * **[[styled-components|styled-components]]**: ์ปดํฌ๋„ŒํŠธ์— ์ง์ ‘ ์Šคํƒ€์ผ์„ ์บก์Аํ™”ํ•˜์—ฌ ๋™์ ์ด๊ณ  props์— ๊ธฐ๋ฐ˜ํ•œ ์Šคํƒ€์ผ๋ง์„ ์ œ๊ณตํ•˜๋Š” CSS-in-JS ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค[13, 14]. ํ•˜์ง€๋งŒ ๋ธŒ๋ผ์šฐ์ €์—์„œ JavaScript๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์Šคํƒ€์ผ์„ ์ฃผ์ž…ํ•˜๋ฏ€๋กœ ๋Ÿฐํƒ€์ž„ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉฐ, [[React Context|React Context]]๊ฐ€ ์—†๋Š” [[React Server Components|React Server Components]](RSC) ํ™˜๊ฒฝ์—์„œ๋Š” ์„œ๋ฒ„ ๋ Œ๋”๋ง์— ์ทจ์•ฝํ•˜๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค[15-18]. * **[[Tailwind CSS|Tailwind CSS]]**: ์œ ํ‹ธ๋ฆฌํ‹ฐ ํผ์ŠคํŠธ(Utility-first) ์ ‘๊ทผ๋ฒ•์„ ์ทจํ•˜๋ฉฐ, ์ •์  CSS๋ฅผ ๋นŒ๋“œ ํƒ€์ž„์— ์ƒ์„ฑํ•˜์—ฌ ๋Ÿฐํƒ€์ž„ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ „ํ˜€ ์—†์Šต๋‹ˆ๋‹ค[19, 20]. ํŠนํžˆ Tailwind v4๋Š” `@theme` ์ง€์‹œ์–ด์™€ ๋„ค์ดํ‹ฐ๋ธŒ CSS ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” CSS ์šฐ์„  ์•„ํ‚คํ…์ฒ˜๋กœ ์ „ํ™˜๋˜์–ด, ๋นŒ๋“œ ์†๋„ ๋ฐ ์ดˆ๊ธฐ ๋ Œ๋”๋ง([[Core Web Vitals|Core Web Vitals]]) ์„ฑ๋Šฅ ๋ฉด์—์„œ CSS-in-JS๋ณด๋‹ค ๋Œ€๊ทœ๋ชจ ํ™•์žฅ์— ๋งค์šฐ ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค[18, 21-23]. * **์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ปดํฌ๋„ŒํŠธ ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„ ํŒจํ„ด**: * **์•„ํ† ๋ฏน ๋””์ž์ธ([[Atomic Design|Atomic Design]])**: UI๋ฅผ ์›์ž(Atoms), ๋ถ„์ž(Molecules), ์œ ๊ธฐ์ฒด(Organisms), ํ…œํ”Œ๋ฆฟ(Templates), ํŽ˜์ด์ง€(Pages)์˜ 5๋‹จ๊ณ„๋กœ ์„ธ๋ถ„ํ™”ํ•˜์—ฌ, ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๊ณ  ์กฐ๋ฆฝ ๊ฐ€๋Šฅํ•œ ์ปดํฌ๋„ŒํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๊ธฐ์ดˆ ๋ฐฉ๋ฒ•๋ก ์ž…๋‹ˆ๋‹ค[24-28]. * **์ปดํŒŒ์šด๋“œ ์ปดํฌ๋„ŒํŠธ([[Compound Components|Compound Components]])**: ๋‹จ์ผ ์ปดํฌ๋„ŒํŠธ์— ๋„ˆ๋ฌด ๋งŽ์€ ์†์„ฑ(Prop)์„ ์ฃผ์ž…ํ•ด ๋ณต์žกํ•ด์ง€๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด, ์—ฌ๋Ÿฌ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋‚ด๋ถ€์ ์œผ๋กœ ์ƒํƒœ(Context)๋ฅผ ๊ณต์œ ํ•˜๋„๋ก ์„ ์–ธ์ ์œผ๋กœ ๊ตฌ์„ฑํ•˜๋Š” ํŒจํ„ด์ž…๋‹ˆ๋‹ค(์˜ˆ: `Accordion.Root`, `Accordion.Item`)[29-32]. * **์˜ค๋ฒ„๋ผ์ด๋“œ ํŒจํ„ด(Overrides API) ๋ฐ ํ—ค๋“œ๋ฆฌ์Šค(Headless) ์ปดํฌ๋„ŒํŠธ**: Uber์˜ Base Web ๋“ฑ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์˜ค๋ฒ„๋ผ์ด๋“œ ํŒจํ„ด์€ ๋‚ด๋ถ€ ์š”์†Œ์˜ ๊ธฐ๋Šฅ์ด๋‚˜ ์Šคํƒ€์ผ์„ ์‚ฌ์šฉ์ž๊ฐ€ ์‰ฝ๊ฒŒ ๊ต์ฒดํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค[33-36]. ํ—ค๋“œ๋ฆฌ์Šค ์ปดํฌ๋„ŒํŠธ๋Š” ์Šคํƒ€์ผ๋ง์„ ์ œ์™ธํ•œ ์ƒํƒœ ๊ด€๋ฆฌ์™€ ์ ‘๊ทผ์„ฑ ๋กœ์ง๋งŒ์„ ์ œ๊ณตํ•˜์—ฌ Tailwind ๋“ฑ๊ณผ ๊ฒฐํ•ฉ ์‹œ ์œ ์—ฐ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•ฉ๋‹ˆ๋‹ค[37]. * **๋Œ€๊ทœ๋ชจ ํ”„๋ก ํŠธ์—”๋“œ์˜ ๊ตฌ์กฐํ™”([[Monorepo|Monorepo]] ๋ฐ FSD)**: ์‹œ์Šคํ…œ์ด ์ปค์งˆ ๊ฒฝ์šฐ, ๋‹จ์ผ ํด๋”์— ๊ณต์œ  ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ฌด๋ถ„๋ณ„ํ•˜๊ฒŒ ๋‹ด์ง€ ์•Š๊ณ  Monorepo ํ™˜๊ฒฝ์—์„œ [[Feature-Sliced Design|Feature-Sliced Design]] (FSD) ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋„์ž…ํ•˜๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค[38-41]. FSD๋Š” ์ฝ”๋“œ๋ฅผ Shared, Entities, Features, Widgets, Pages ๋“ฑ์œผ๋กœ ๋ช…ํ™•ํžˆ ๋ถ„๋ฆฌํ•˜์—ฌ ์˜์กด์„ฑ์˜ ๋ฐฉํ–ฅ์„ ํ†ต์ œํ•˜๊ณ  ํผ๋ธ”๋ฆญ API ์บก์Аํ™”๋ฅผ ๊ฐ•์ œํ•˜์—ฌ ์‹œ์Šคํ…œ์„ ๊ฒฌ๊ณ ํ•˜๊ฒŒ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค[39, 41]. --- * **๋””์ž์ธ ์‹œ์Šคํ…œ์˜ ๋ชฉ์ ๊ณผ ์•„ํ‚คํ…์ฒ˜ ๊ฐ€์น˜** ๋””์ž์ธ ์‹œ์Šคํ…œ์€ ๋‹จ์ˆœํžˆ ์ปดํฌ๋„ŒํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์•„๋‹ˆ๋ผ ๋””์ž์ธ๊ณผ ์—”์ง€๋‹ˆ์–ด๋ง ์‚ฌ์ด์˜ ๊ฒฉ์ฐจ๋ฅผ ํ•ด์†Œํ•˜๋Š” '๋‹จ์ผ ์ง„์‹ค ๊ณต๊ธ‰์›([[Single_Source_of_Truth|Single Source of Truth]])'์ด์ž ํ†ต์‹  ํ”„๋กœํ† ์ฝœ๋กœ ๊ธฐ๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์—์„œ ๊ฐœ๋ฐœ์ž๋“ค์ด ์ผํšŒ์„ฑ ํ—ฅ์Šค(hex) ์ฝ”๋“œ๋ฅผ ๋„์ž…ํ•˜๋ฉด์„œ ๋ฐœ์ƒํ•˜๋Š” "300๊ฐ€์ง€์˜ ํšŒ์ƒ‰(300 shades of gray)"๊ณผ ๊ฐ™์€ ์ผ๊ด€์„ฑ ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ถ๊ทน์ ์œผ๋กœ ์œ ์ง€๋ณด์ˆ˜ ๊ฐ€๋Šฅํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ํ”„๋ก ํŠธ์—”๋“œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ํ•ต์‹ฌ์ ์ธ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. * **๋””์ž์ธ ํ† ํฐ ([[Design Tokens|Design Tokens]])์˜ ์—ญํ• ** ๋””์ž์ธ ์‹œ์Šคํ…œ์˜ ํ•ต์‹ฌ์ด์ž ๊ธฐ์ดˆ์ ์ธ ๋นŒ๋”ฉ ๋ธ”๋ก์€ ๋””์ž์ธ ํ† ํฐ์ž…๋‹ˆ๋‹ค. ์ƒ‰์ƒ, ๊ฐ„๊ฒฉ, ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ, ํ…Œ๋‘๋ฆฌ, ๊ทธ๋ฆผ์ž, ๋ชจ์…˜, Z-index ๋“ฑ๊ณผ ๊ฐ™์€ ์‹œ๊ฐ์  ๋””์ž์ธ ์†์„ฑ์„ ์ €์žฅํ•˜๋Š” ํ”Œ๋žซํผ ๋…๋ฆฝ์ ์ธ(Platform-agnostic) ์—”ํ‹ฐํ‹ฐ์ž…๋‹ˆ๋‹ค. * **๋””์ž์ธ ํ† ํฐ์˜ 3๋‹จ๊ณ„ ๊ณ„์ธต ๊ตฌ์กฐ (Token Hierarchy)** ์œ ์—ฐ์„ฑ๊ณผ ์‹œ์Šคํ…œ ์ „๋ฐ˜์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋””์ž์ธ ํ† ํฐ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์„ธ ๊ฐ€์ง€ ๊ณ„์ธต์œผ๋กœ ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค. 1. **Global Tokens (Primitives):** ์ปจํ…์ŠคํŠธ๊ฐ€ ์—†๋Š” ์›์‹œ ๊ฐ’์œผ๋กœ, ๋””์ž์ธ ์‹œ์Šคํ…œ์˜ ๊ธฐ๋ณธ ํŒ”๋ ˆํŠธ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค (์˜ˆ: `--blue-500: #3b82f6`). 2. **Alias Tokens (Semantic):** ๊ธ€๋กœ๋ฒŒ ํ† ํฐ์„ ์ฐธ์กฐํ•˜๋˜ ํŠน์ •ํ•œ ๋ชฉ์ ์ด๋‚˜ ์ปจํ…์ŠคํŠธ๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค (์˜ˆ: `--color-primary: var(--blue-500)`). ์ด ๊ณ„์ธต์˜ ํ† ํฐ์„ ์ˆ˜์ •ํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „์ฒด์˜ ์ˆ˜์ฒœ ๊ฐœ ์ปดํฌ๋„ŒํŠธ์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ฆ‰์‹œ ์ „ํŒŒ๋˜์–ด ํ…Œ๋งˆ ๋ณ€๊ฒฝ์ด ๋งค์šฐ ์šฉ์ดํ•ด์ง‘๋‹ˆ๋‹ค. 3. **Component-specific Tokens:** ํŠน์ • UI ์š”์†Œ์— ๊ตญํ•œ๋œ ํ† ํฐ์œผ๋กœ, ์‹œ์Šคํ…œ์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ  ๊ฐœ๋ณ„ ์ปดํฌ๋„ŒํŠธ์˜ ์„ธ๋ฐ€ํ•œ ์กฐ์ •์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค (์˜ˆ: `--button-bg-primary: var(--color-primary)`). * **์ž๋™ํ™” ๋ฐ ๋‹ค์ค‘ ํ”Œ๋žซํผ ๋ณ€ํ™˜ ํŒŒ์ดํ”„๋ผ์ธ** ์›น, iOS, Android ๋“ฑ ์—ฌ๋Ÿฌ ํ”Œ๋žซํผ์— ๊ฑธ์นœ ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ, ๋””์ž์ธ ํ† ํฐ์€ JSON๊ณผ ๊ฐ™์€ ์ค‘๋ฆฝ์ ์ธ ํ˜•์‹์œผ๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์ดํ›„ '[[Style Dictionary|Style Dictionary]]'์™€ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ํ†ตํ•ด ์›น์šฉ CSS ๋ณ€์ˆ˜, Android์šฉ XML, iOS์šฉ Swift ์ฝ”๋“œ๋กœ ์ž๋™ ๋ณ€ํ™˜๋˜์–ด ์ˆ˜๋™ ์˜ค๋ฅ˜๋ฅผ ์—†์• ๊ณ  ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. * **๋ฐ˜์‘ํ˜• ๋””์ž์ธ(Responsive Design)๊ณผ์˜ ์œตํ•ฉ** ํ˜„๋Œ€์˜ ๋””์ž์ธ ์‹œ์Šคํ…œ์—์„œ๋Š” ๋ฐ˜์‘ํ˜• ๋™์ž‘์„ ๊ฐœ๋ณ„ ํŽ˜์ด์ง€๊ฐ€ ์•„๋‹Œ '์ปดํฌ๋„ŒํŠธ์˜ ์†์„ฑ'์œผ๋กœ ์ทจ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ ์ฟผ๋ฆฌ([[Container Queries|Container Queries]])๋ฅผ ์ ์šฉํ•˜์—ฌ ์ปดํฌ๋„ŒํŠธ ์ž์ฒด๊ฐ€ ๊ฐ€์šฉ ๋„ˆ๋น„์— ๋”ฐ๋ผ ๋ฐ˜์‘ํ•˜๋„๋ก ๊ตฌ์ถ•ํ•˜๋ฉด, ๋””์ž์ธ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ํŒ€์ด ๋ณ„๋„์˜ ์ž‘์—… ์—†์ด ์˜ฌ๋ฐ”๋ฅธ ๋ฐ˜์‘ํ˜• ๋™์ž‘์„ ์ผ๊ด€๋˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. --- - **๋””์ž์ธ ์‹œ์Šคํ…œ์˜ ๋ชฉ์ ๊ณผ ๊ฐ€์น˜:** ๋””์ž์ธ ์‹œ์Šคํ…œ์€ ๋ธŒ๋žœ๋“œ์˜ ์‹œ๊ฐ์  ์ •์ฒด์„ฑ์„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•œ ๊ฒƒ์œผ๋กœ, ๋Œ€๊ทœ๋ชจ ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋กœ์ ํŠธ์—์„œ ์ผ๊ด€์„ฑ ์—†๋Š” ๋””์ž์ธ ๊ฐ’(์˜ˆ: "300๊ฐœ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ํšŒ์ƒ‰")์ด ๋ฌด๋ถ„๋ณ„ํ•˜๊ฒŒ ๋„์ž…๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค [4-6]. ์ด๋ฅผ ํ†ตํ•ด ๋””์ž์ธ๊ณผ ์ฝ”๋“œ ๊ฐ„์˜ ๊ฐ„๊ทน์„ ๋ฉ”์šฐ๊ณ , ์žฅ๊ธฐ์ ์œผ๋กœ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ๊ฐ€๋Šฅํ•œ ํ™•์žฅ์„ฑ ์žˆ๋Š” ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [7]. - **๋””์ž์ธ ํ† ํฐ(Design Tokens)์˜ ๊ณ„์ธต ๊ตฌ์กฐ:** ๋””์ž์ธ ์‹œ์Šคํ…œ์˜ ํ•ต์‹ฌ์€ ๋””์ž์ธ ๊ฐ’์„ ํ”Œ๋žซํผ์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๊ณ  ์ €์žฅํ•˜๋Š” ๋””์ž์ธ ํ† ํฐ์ž…๋‹ˆ๋‹ค [6, 8]. ์ด๋Š” ์œ ์—ฐ์„ฑ๊ณผ ์‹œ์Šคํ…œ ์ผ๊ด€์„ฑ์„ ๋™์‹œ์— ๊ฐ–์ถ”๊ธฐ ์œ„ํ•ด ์„ธ ๊ฐ€์ง€ ๊ณ„์ธต์œผ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค [9]: 1. **๊ธ€๋กœ๋ฒŒ ํ† ํฐ(Global/Primitive Tokens):** ํŠน์ • ๋งฅ๋ฝ ์—†์ด ์›์‹œ ๊ฐ’์„ ์ •์˜ํ•˜๋Š” ํ† ํฐ(์˜ˆ: `--blue-500: #3b82f6`)์œผ๋กœ ์‹œ์Šคํ…œ์˜ ๊ธฐ์ดˆ ํŒ”๋ ˆํŠธ๋ฅผ ํ˜•์„ฑํ•ฉ๋‹ˆ๋‹ค [9-11]. 2. **์˜๋ฏธ๋ก ์  ํ† ํฐ(Alias/Semantic Tokens):** ๊ธ€๋กœ๋ฒŒ ํ† ํฐ์„ ์ฐธ์กฐํ•˜์—ฌ ๊ตฌ์ฒด์ ์ธ ์˜๋„์™€ ๋งฅ๋ฝ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: `--color-primary: var(--blue-500)`) [9-11]. 3. **์ปดํฌ๋„ŒํŠธ ํ† ํฐ(Component-specific Tokens):** ๋ฒ„ํŠผ์ด๋‚˜ ๋ชจ๋‹ฌ ๋“ฑ ํŠน์ • UI ์š”์†Œ์—๋งŒ ์ ์šฉ๋˜๋Š” ํ† ํฐ(์˜ˆ: `--button-bg: var(--color-primary)`)์œผ๋กœ, ์ „์ฒด ์‹œ๊ฐ์  ์‹œ์Šคํ…œ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ  ๊ฐœ๋ณ„ ์ปดํฌ๋„ŒํŠธ์˜ ์„ธ๋ถ€ ์กฐ์ •์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค [9, 10, 12]. - **CSS ์•„ํ‚คํ…์ฒ˜์™€์˜ ํ†ตํ•ฉ:** ๋””์ž์ธ ์‹œ์Šคํ…œ์€ BEM, [[Tailwind CSS|Tailwind CSS]] ๋“ฑ ๋‹ค์–‘ํ•œ CSS ์„ค๊ณ„ ๋ฐฉ์‹์˜ ๋ผˆ๋Œ€๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. Tailwind CSS์˜ ๊ฒฝ์šฐ ๊ตฌ์„ฑ ํŒŒ์ผ(config)์„ ํ†ตํ•ด ์‹œ์Šคํ…œ์˜ ๊ฐ„๊ฒฉ, ์ƒ‰์ƒ, ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ ์Šค์ผ€์ผ์„ ๊ฐ•์ œํ•จ์œผ๋กœ์จ ๋””์ž์ธ ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•˜๋ฉฐ [4, 5], BEM ์•„ํ‚คํ…์ฒ˜๋Š” ์ปดํฌ๋„ŒํŠธ ์Šคํƒ€์ผ์˜ ๋ช…ํ™•ํ•œ ๊ฒฝ๊ณ„์™€ ๊ตฌ์กฐ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋””์ž์ธ ์‹œ์Šคํ…œ๊ณผ ๊ฐ•๋ ฅํ•˜๊ฒŒ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค [13, 14]. ๋˜ํ•œ Panda CSS์™€ ๊ฐ™์€ ์ตœ์‹  Zero-runtime [[CSS-in-JS|CSS-in-JS]] ๋„๊ตฌ๋“ค์€ ๋””์ž์ธ ์‹œ์Šคํ…œ๊ณผ ํ…Œ๋งˆ๋ฅผ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค [15]. - **๋ฐ˜์‘ํ˜• ๋””์ž์ธ์˜ ๋‚ด์žฌํ™”:** ํ˜„๋Œ€์˜ ๋””์ž์ธ ์‹œ์Šคํ…œ ๋‚ด์—์„œ ๋ฐ˜์‘ํ˜• ๋™์ž‘์€ ๊ฐœ๋ณ„ ํŽ˜์ด์ง€ ๋‹จ์œ„๊ฐ€ ์•„๋‹ˆ๋ผ '์ปดํฌ๋„ŒํŠธ์˜ ์†์„ฑ'์œผ๋กœ ์ทจ๊ธ‰๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [16]. ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋†“์ธ ๋งฅ๋ฝ์— ๋งž๊ฒŒ ์Šค์Šค๋กœ ๋ ˆ์ด์•„์›ƒ์„ ์กฐ์ •ํ•˜๋„๋ก(์˜ˆ: ์ปจํ…Œ์ด๋„ˆ ์ฟผ๋ฆฌ ํ™œ์šฉ) ์‹œ์Šคํ…œ ๋ ˆ๋ฒจ์—์„œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์„ค๊ณ„ํ•˜๋ฉด, ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ํŒ€์ด ์ผ๊ด€๋œ ๋ฐ˜์‘ํ˜• ๋™์ž‘์„ ์ž๋™์œผ๋กœ ์ƒ์†๋ฐ›์•„ ์ผ๊ด€์„ฑ ๋ถ•๊ดด๋ฅผ ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [16-18]. - **๋‹ค์ค‘ ํ”Œ๋žซํผ ์ง€์›(Multi-Platform) ์›Œํฌํ”Œ๋กœ์šฐ:** ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ, ๋””์ž์ธ ํ† ํฐ์€ JSON๊ณผ ๊ฐ™์€ ์ค‘๋ฆฝ์  ํ˜•์‹์œผ๋กœ ์ €์žฅ๋œ ๋’ค [[Style Dictionary|Style Dictionary]]์™€ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ํ†ตํ•ด ์›น(CSS), iOS(Swift), Android(XML) ๋“ฑ ๊ฐ๊ฐ์˜ ํ”Œ๋žซํผ์— ๋งž๋Š” ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค [3, 19-21]. ์ด๋Š” '๋‹จ์ผ ์ง„์‹ค ๊ณต๊ธ‰์›([[Single_Source_of_Truth|Single Source of Truth]])'์„ ์ œ๊ณตํ•˜์—ฌ ๊ธฐ์ˆ  ์Šคํƒ๊ณผ ๋ฌด๊ด€ํ•˜๊ฒŒ ์ „์ฒด ์ œํ’ˆ ์ƒํƒœ๊ณ„์—์„œ ์‹œ๊ฐ์  ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค [3]. ## โš–๏ธ Trade-offs & Caveats No trade-offs available. ## ๐Ÿ”— Knowledge Connections - **Related Topics:** [[Design Tokens|Design Tokens]], Atomic Design, Compound Components, [[Tailwind CSS|Tailwind CSS]], Styled-components, [[Feature-Sliced Design|Feature-Sliced Design]] - **Projects/Contexts:** [[Shopify Polaris|Shopify Polaris]], [[Uber Base Web|Uber Base Web]] - **Contradictions/Notes:** ์†Œ์Šค [42]์™€ [43]๋Š” Tailwind CSS๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์—ฌ๋Ÿฌ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค๋กœ ์ธํ•ด ๋งˆํฌ์—…์ด ๋งค์šฐ ๊ธธ์–ด์ง€๊ณ (Class Soup) ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ง€์ ํ•˜์ง€๋งŒ, ์†Œ์Šค [44]์™€ [45]์€ ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค๋ฅผ ๋ฐ˜๋ณต ์ž‘์„ฑํ•˜๋Š” ๋Œ€์‹  "์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ปดํฌ๋„ŒํŠธ"๋กœ ์ถ”์ƒํ™”ํ•˜๊ฑฐ๋‚˜ ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์กฐ์–ธํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์†Œ์Šค [14], [18]์€ Styled-components๊ฐ€ ํ›Œ๋ฅญํ•œ ๊ฐœ๋ฐœ์ž ๊ฒฝํ—˜๊ณผ ๋™์  ์Šคํƒ€์ผ๋ง์„ ์ œ๊ณตํ•œ๋‹ค๊ณ  ์„ค๋ช…ํ•˜์ง€๋งŒ, ์†Œ์Šค [15], [16], [17]์€ ๋Œ€๊ทœ๋ชจ ์•ฑ์ด๋‚˜ RSC๊ฐ€ ์ ์šฉ๋œ [[Next.js|Next.js]] ํ™˜๊ฒฝ์—์„œ๋Š” ๋Ÿฐํƒ€์ž„ ์„ฑ๋Šฅ ๋ฐ ํ˜ธํ™˜์„ฑ ์ด์Šˆ๋ฅผ ์•ผ๊ธฐํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ Tailwind๋‚˜ [[CSS Modules|CSS Modules]]๋ฅผ ๊ถŒ์žฅํ•˜๋ฉฐ ์„œ๋กœ ๋‹ค๋ฅธ ์ตœ์ ์˜ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค. --- *Last updated: 2026-04-26* --- - **Related Topics:** [[Design Tokens|Design Tokens]], CSS Architecture, Responsive Design, [[Tailwind CSS|Tailwind CSS]] - **Projects/Contexts:** [[แ„‰แ…ตแ†ฏแ„†แ…ฎแ„‹แ…ฆแ„‰แ…ฅ CSS แ„€แ…ชแ†ซแ„…แ…ตแ„’แ…กแ„‚แ…ณแ†ซ แ„‡แ…กแ†ผแ„‡แ…ฅแ†ธ|์‹ค๋ฌด์—์„œ CSS ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•]], ๋Œ€๊ทœ๋ชจ ํ”„๋ก ํŠธ์—”๋“œ ์•„ํ‚คํ…์ฒ˜ ํ™•์žฅ (Enterprise Frontend [[Architecture|Architecture]]) - **Contradictions/Notes:** [[Tailwind CSS|Tailwind CSS]]์™€ ๊ฐ™์€ ์œ ํ‹ธ๋ฆฌํ‹ฐ ์šฐ์„ (Utility-first) ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์‚ฌ์ „ ์ •์˜๋œ ์Šค์ผ€์ผ์„ ์ œ๊ณตํ•˜์—ฌ ๋””์ž์ธ ์‹œ์Šคํ…œ์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ๋ฐ ๋›ฐ์–ด๋‚˜์ง€๋งŒ, ํ”ฝ์…€ ํผํŽ™ํŠธ(pixel-perfect)๊ฐ€ ์š”๊ตฌ๋˜๊ฑฐ๋‚˜ ๋งค์šฐ ๊ณ ๋„๋กœ ๋งž์ถคํ™”๋œ ๋…์ž์ ์ธ ๋””์ž์ธ ์‹œ์Šคํ…œ ๋กœ์ง์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋Š” Tailwind์˜ ์„ค์ •์ด ํ•œ๊ณ„๋กœ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ์–ด [[SCSS|SCSS]]์˜ ๊ฐ•๋ ฅํ•œ ์ œ์–ด๋ ฅ์ด ๋” ์ ํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. --- *Last updated: 2026-04-26* --- - **Related Topics:** [[Design Tokens|Design Tokens]], CSS Architecture, BEM, [[Tailwind CSS|Tailwind CSS]], [[Responsive Web Design|Responsive Web Design]] - **Projects/Contexts:** [[Style Dictionary|Style Dictionary]], [[UXPin Merge|UXPin Merge]] - **Contradictions/Notes:** ๋‹ค์ค‘ ํ”Œ๋žซํผ์„ ์œ„ํ•œ ์ฝ”๋“œ๋ฅผ ์ž๋™์œผ๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ํŒŒ์ดํ”„๋ผ์ธ(์˜ˆ: Style Dictionary)์€ ์ž˜ ์ •๋ฆฝ๋˜์–ด ์žˆ์œผ๋‚˜, [[Figma|Figma]]์™€ ๊ฐ™์€ ์ฃผ์š” ๋””์ž์ธ ๋„๊ตฌ๋Š” ์—ฌ์ „ํžˆ ๋””์ž์ธ ์‹œ์Šคํ…œ๊ณผ ํ† ํฐ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ์™„๋ฒฝํ•œ ์ธ์•ฑ(in-app) ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•˜์ง€ ๋ชปํ•˜์—ฌ, ๋•Œ๋กœ ๋ฒ„๊ทธ๊ฐ€ ์žˆ๋Š” ํƒ€์‚ฌ ํ”Œ๋Ÿฌ๊ทธ์ธ(์˜ˆ: Figma Tokens)์— ์˜์กดํ•ด ๋””์ž์ธ-๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ฐ„์˜ ๊ฐ„๊ทน์„ ๋ฉ”์›Œ์•ผ ํ•˜๋Š” ํ•œ๊ณ„๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค [22-24]. --- *Last updated: 2026-04-26*