# [[Design Tokens]] ## ๐Ÿ“Œ[[ brief]] Summary ๋””์ž์ธ ํ† ํฐ(Design Tokens)์€ ์ƒ‰์ƒ, ์„œ์ฒด, ๊ฐ„๊ฒฉ, ๊ทธ๋ฆผ์ž, ๋ชจ์…˜ ๋“ฑ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์˜ ์‹œ๊ฐ์  DNA๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์›์ž ๋‹จ์œ„์˜ ๋ฐ์ดํ„ฐ ํฌ์ธํŠธ์ž…๋‹ˆ๋‹ค [1-3]. ์ด ๋ฐ์ดํ„ฐ๋Š” JSON์ด๋‚˜ YAML๊ณผ ๊ฐ™์€ ๊ธฐ๊ณ„ ํŒ๋… ๊ฐ€๋Šฅํ•œ ํ˜•์‹์œผ๋กœ ์ €์žฅ๋˜์–ด ๋””์ž์ธ ๋„๊ตฌ์™€ ์ฝ”๋“œ๋ฅผ ์ž๋™์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๋‹จ์ผ ์ง„์‹ค ๊ณต๊ธ‰์›([[Single Source of Truth]]) ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค [1, 4, 5]. ๋””์ž์ธ ํ† ํฐ์€ ํ•˜๋“œ์ฝ”๋”ฉ๋œ ๊ฐ’์„ ๋Œ€์ฒดํ•จ์œผ๋กœ์จ UI ๊ตฌ์„ฑ ์š”์†Œ์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๊ณ , ๋‹คํฌ ๋ชจ๋“œ์™€ ๊ฐ™์€ ๋™์  ํ…Œ๋งˆ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ „ํ™˜ํ•˜๋ฉฐ, React ํ”„๋กœ์ ํŠธ์—์„œ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๋””์ž์ธ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ํ•ต์‹ฌ์ ์ธ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค [6-8]. ## ๐Ÿ“– Core Content * **๋””์ž์ธ ํ† ํฐ์˜ 3๊ณ„์ธต ๊ตฌ์กฐ:** ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ณ  ์•ˆ์ „ํ•œ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด ๋””์ž์ธ ํ† ํฐ์€ 3๋‹จ๊ณ„ ๊ณ„์ธต์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค [9-11]. * **์›์‹œ/๊ธฐ๋ณธ ํ† ํฐ (Primitive/Base Tokens):** `#3366FF`๋‚˜ `16px`๊ณผ ๊ฐ™์€ ๊ตฌ์ฒด์ ์ด๊ณ  ์›์‹œ์ ์ธ ๊ฐ’์œผ๋กœ, ์‹œ๋งจํ‹ฑ(์˜๋ฏธ๋ก ์ )์ธ ๋ชฉ์ ์„ ๊ฐ–์ง€ ์•Š๋Š” ๋””์ž์ธ ์‹œ์Šคํ…œ์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ ์š”์†Œ์ž…๋‹ˆ๋‹ค [10, 12-14]. * **์‹œ๋งจํ‹ฑ/์•จ๋ฆฌ์–ด์Šค ํ† ํฐ (Semantic/Alias Tokens):** ์›์‹œ ํ† ํฐ์„ ์ฐธ์กฐํ•˜์—ฌ ๋””์ž์ธ์˜ '์˜๋„'์™€ ์—ญํ• ์„ ๋ช…์‹œํ•ฉ๋‹ˆ๋‹ค (์˜ˆ: `color.primary = color.blue.500`) [10, 12-14]. ์•ˆ์ „ํ•œ ๋ฆฌํŒฉํ† ๋ง๊ณผ ํ…Œ๋งˆ ์ „ํ™˜์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ณ„์ธต์ž…๋‹ˆ๋‹ค [10, 12]. * **์ปดํฌ๋„ŒํŠธ ํ† ํฐ (Component Tokens):** ํŠน์ • ์ปดํฌ๋„ŒํŠธ์™€ ๊ทธ ๋ณ€ํ˜•์— ์ง์ ‘์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ํ† ํฐ์ž…๋‹ˆ๋‹ค (์˜ˆ: `button.background = color.primary`) [10-14]. * **๋™์  ํ…Œ๋งˆ ๋ฐ ๋„๊ตฌ ํ†ตํ•ฉ:** ๋””์ž์ธ ํ† ํฐ์„ ํ™œ์šฉํ•˜๋ฉด ๋ณ„๋„์˜ ํ…Œ๋งˆ ํ† ํฐ ์„ธํŠธ(์˜ˆ: Light/Dark ๋ชจ๋“œ)๋ฅผ ์ •์˜ํ•˜์—ฌ **๋™์  ํ…Œ๋งˆ([[Dynamic Theming]])**๋ฅผ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [15, 16]. [[Style Dictionary]]์™€ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด JSON์— ์ •์˜๋œ ํ† ํฐ์„ CSS Custom Properties(CSS ๋ณ€์ˆ˜)๋‚˜ iOS, Android, React์šฉ ํฌ๋งท์œผ๋กœ ์ž๋™ ๋ณ€ํ™˜ํ•˜์—ฌ ์ฝ”๋“œ ๋ฒ ์ด์Šค์— ์ฆ‰์‹œ ์ฃผ์ž…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [17-20]. * **[[Tailwind CSS v4]]์™€์˜ ์‹œ๋„ˆ์ง€:** [[Tailwind CSS]] v4๋Š” ๊ตฌ์„ฑ ๋ฐฉ์‹์— ์žˆ์–ด [[JavaScript]] ํŒŒ์ผ ๋Œ€์‹  CSS ์šฐ์„ (CSS-first) ๊ตฌ์กฐ๋ฅผ ๋„์ž…ํ•˜์—ฌ ํ† ํฐ ๊ด€๋ฆฌ์— ํŒจ๋Ÿฌ๋‹ค์ž„ ์ „ํ™˜์„ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค [21-23]. `@theme` ๋””๋ ‰ํ‹ฐ๋ธŒ ๋‚ด์—์„œ ๋””์ž์ธ ํ† ํฐ์„ ๊ธฐ๋ณธ CSS ๋ณ€์ˆ˜๋กœ ์ •์˜ํ•˜๋ฉด, Tailwind๊ฐ€ ์ด์— ๋Œ€์‘ํ•˜๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: `--color-primary-500` ์„ ์–ธ ์‹œ `bg-primary-500` ์‚ฌ์šฉ ๊ฐ€๋Šฅ) [21-24]. ์ด๋ฅผ ํ†ตํ•ด CSS ๋ณ€์ˆ˜๋ฅผ ๋„ค์ดํ‹ฐ๋ธŒํ•˜๊ฒŒ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , JS ์˜ค๋ฒ„ํ—ค๋“œ ์—†์ด ๊ฐ•๋ ฅํ•œ ๋Ÿฐํƒ€์ž„ ํ…Œ๋งˆ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค [23, 25, 26]. * **ํ˜‘์—… ํšจ์œจ์„ฑ ๋ฐ ํ™•์žฅ์„ฑ:** ๋””์ž์ธ ํ† ํฐ์€ ๋””์ž์ด๋„ˆ์™€ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž ๊ฐ„์— ๊ณตํ†ต๋œ ์–ธ์–ด๋ฅผ ํ˜•์„ฑํ•˜์—ฌ ์ค‘๋ณต๋œ ์Šคํƒ€์ผ๋ง์„ ๋ฐฉ์ง€ํ•˜๊ณ  ์ฝ”๋“œ์˜ ์œ ์ง€๋ณด์ˆ˜ ๋น„์šฉ์„ ๋‚ฎ์ถฅ๋‹ˆ๋‹ค [8, 27-29]. ์ค‘์•™ ์ง‘์ค‘์‹ ํ† ํฐ ๊ด€๋ฆฌ๋ฅผ ํ†ตํ•ด CI/CD ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ํ† ํฐ์˜ ๋ฐฐํฌ๋ฅผ ์ž๋™ํ™”ํ•˜๋ฉด ๋Œ€๊ทœ๋ชจ React ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋„ ์‹œ๊ฐ์  ์ผ๊ด€์„ฑ์„ ๊นจ๋œจ๋ฆฌ์ง€ ์•Š๊ณ  ์Šคํƒ€์ผ์„ ์•ˆ์ •์ ์œผ๋กœ ์ง„ํ™”์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [30-33]. ## ๐Ÿ”— Knowledge Connections - **Related Topics:** `[[CSS Variables]]`, `[[Tailwind CSS v4]]`, `[[Style Dictionary]]`, `[[Dynamic Theming]]` - **Projects/Contexts:** `[[Figma Tokens Studio]]`, `[[React Component Architecture]]`, `[[Uber Base Web Design System]]` - **Contradictions/Notes:** ์†Œ์Šค์˜ ๊ถŒ์žฅ ์‚ฌํ•ญ์— ๋”ฐ๋ฅด๋ฉด, ๊ฐœ๋ฐœ ์‹œ ์ปดํฌ๋„ŒํŠธ์— ์›์‹œ ํ† ํฐ(Primitive Tokens)์ด๋‚˜ ์ž„์˜์˜ ๊ฐ’์„ ์ง์ ‘ ํ•˜๋“œ์ฝ”๋”ฉํ•˜๋Š” ๊ฒƒ์€ ์‹œ์Šคํ…œ์˜ ํ™•์žฅ์„ฑ์„ ํŒŒ๊ดดํ•˜๋Š” ์ฃผ๋œ ์›์ธ์ด ๋ฉ๋‹ˆ๋‹ค [34, 35]. ๋”ฐ๋ผ์„œ ์Šคํƒ€์ผ์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๊ณ  ์œ ์—ฐํ•œ ํ…Œ๋งˆ๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐ˜๋“œ์‹œ ์‹œ๋งจํ‹ฑ ํ† ํฐ(Semantic Tokens)์„ ๊ฑฐ์ณ ์ปดํฌ๋„ŒํŠธ์— ์ ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [10, 34, 36]. --- *Last updated: 2026-04-26*