# [[Design-to-Code Workflow]] ## ๐Ÿ“Œ Brief Summary Design-to-Code Workflow๋Š” Figma์™€ ๊ฐ™์€ ๋””์ž์ธ ๋„๊ตฌ์—์„œ ์ •์˜๋œ ๋””์ž์ธ ๊ฒฐ์ •(์ƒ‰์ƒ, ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ, ๊ฐ„๊ฒฉ ๋“ฑ)์„ React ๋“ฑ์˜ ํ”„๋ก ํŠธ์—”๋“œ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์‹ค์ œ ์ฝ”๋“œ๋กœ ๋งค๋„๋Ÿฝ๊ฒŒ ๋ณ€ํ™˜ํ•˜๊ณ  ๋™๊ธฐํ™”ํ•˜๋Š” ์ž๋™ํ™” ๋ฐ ํ˜‘์—… ํŒŒ์ดํ”„๋ผ์ธ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค [1, 2]. ์ด ์›Œํฌํ”Œ๋กœ์šฐ๋Š” ๋””์ž์ธ ํ† ํฐ(Design Tokens)์„ ๋‹จ์ผ ์ง„์‹ค ๊ณต๊ธ‰์›(Single source of truth)์œผ๋กœ ํ™œ์šฉํ•˜์—ฌ ๋””์ž์ด๋„ˆ์™€ ๊ฐœ๋ฐœ์ž ๊ฐ„์˜ ๊ฐ„๊ทน์„ ์ขํžˆ๊ณ  ์ˆ˜๋™ ์ž‘์—…์œผ๋กœ ์ธํ•œ ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค [3, 4]. ์ตœ์‹  ํ”„๋ก ํŠธ์—”๋“œ ์•„ํ‚คํ…์ฒ˜์—์„œ๋Š” ์ฝ”๋“œ ๊ธฐ๋ฐ˜ ์ปดํฌ๋„ŒํŠธ ์—ฐ๋™๊ณผ CI/CD ์ž๋™ํ™” ํˆด์„ ๊ฒฐํ•ฉํ•˜์—ฌ ๋””์ž์ธ์˜ ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•˜๊ณ  ํ™•์žฅ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•ฉ๋‹ˆ๋‹ค [5-7]. ## ๐Ÿ“– Core Content * **๋””์ž์ธ ํ† ํฐ(Design Tokens)์˜ ์ถ”์ถœ ๋ฐ ์ค‘์•™ ์ง‘์ค‘ํ™”:** ๋””์ž์ธ ํˆด(์˜ˆ: Figma์˜ Tokens Studio ํ”Œ๋Ÿฌ๊ทธ์ธ ๋“ฑ)์—์„œ ๋‚ด๋ฆฐ ๋””์ž์ธ ๊ฒฐ์ •์€ JSON์ด๋‚˜ YAML ํ˜•ํƒœ์˜ ํ† ํฐ์œผ๋กœ ๊ตฌ์กฐํ™” ๋ฐ ์ถ”์ถœ๋ฉ๋‹ˆ๋‹ค [2]. ์ด๋Š” ํ”Œ๋žซํผ๊ณผ ๋…๋ฆฝ์ ์ธ ๋ฐ์ดํ„ฐ๋กœ, ๋””์ž์ธ ๋„๊ตฌ์™€ ์ฝ”๋“œ๋ฒ ์ด์Šค๊ฐ€ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๊ณ„ ๊ฐ€๋…ํ˜• ํฌ๋งท์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค [2, 8]. * **์Šคํƒ€์ผ ๋ณ€ํ™˜ ๋ฐ ํ…Œ๋งˆ ์ž๋™ํ™” ์—”์ง„:** Style Dictionary์™€ ๊ฐ™์€ ๋„๊ตฌ๋Š” ํ”Œ๋žซํผ์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๋Š” ํ† ํฐ JSON์„ ์ฝ์–ด๋“ค์—ฌ, React ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ CSS ๋ณ€์ˆ˜(CSS Variables)๋‚˜ JavaScript/TypeScript ํ…Œ๋งˆ ๊ฐ์ฒด(styled-components ๋“ฑ)๋กœ ์ž๋™ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค [9-11]. ์ด๋ฅผ ํ†ตํ•ด ๋ผ์ดํŠธ/๋‹คํฌ ๋ชจ๋“œ์™€ ๊ฐ™์€ ๋™์  ํ…Œ๋งˆ๋ฅผ ์ˆ˜๋™ ์ฝ”๋”ฉ ์—†์ด ์ผ๊ด€๋˜๊ฒŒ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [10, 12]. * **์ฝ”๋“œ ๊ธฐ๋ฐ˜ ์ปดํฌ๋„ŒํŠธ(Code-Backed Components) ํ™œ์šฉ:** ์ „ํ†ต์ ์ธ ํ•ธ๋“œ์˜คํ”„ ๋ฐฉ์‹์˜ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด, UXPin Merge์™€ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์‹ค์ œ ์ฝ”๋“œ ๋ ˆํฌ์ง€ํ† ๋ฆฌ(Git)์— ์žˆ๋Š” React ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋””์ž์ธ ํˆด์—์„œ ์ง์ ‘ ๋ถˆ๋Ÿฌ์™€ ํ”„๋กœํ† ํƒ€์ดํ•‘์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค [4, 6]. ๋””์ž์ธ ๋„๊ตฌ ๋‚ด์—์„œ ๊ฐœ๋ฐœ๊ณผ ๋™์ผํ•œ ์ปดํฌ๋„ŒํŠธ์™€ ํ† ํฐ์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ 100% ๋™๊ธฐํ™”๊ฐ€ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค [6, 13]. * **CI/CD๋ฅผ ํ†ตํ•œ ํŒŒ์ดํ”„๋ผ์ธ ์ž๋™ํ™”:** ๋‹จ์ผ ์ง„์‹ค ๊ณต๊ธ‰์›์ธ ํ† ํฐ ์ €์žฅ์†Œ(Version Control)์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ปค๋ฐ‹๋˜๋ฉด, CI/CD ํŒŒ์ดํ”„๋ผ์ธ์ด ์ž๋™์œผ๋กœ ํ”Œ๋žซํผ๋ณ„ ์Šคํƒ€์ผ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ํšŒ๊ท€ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์ณ ์Šคํ…Œ์ด์ง•/ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์— ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค [7, 14]. * **AI ๋ฐ ์—์ด์ „ํŠธ ๊ธฐ๋ฐ˜ ์ŠคํŽ™ ์ƒ์„ฑ:** Uber์˜ uSpec ์‹œ์Šคํ…œ๊ณผ ๊ฐ™์€ ์‚ฌ๋ก€์—์„œ๋Š” AI ์—์ด์ „ํŠธ์™€ Figma Console MCP๋ฅผ ์—ฐ๋™ํ•˜์—ฌ, ๋””์ž์ธ ํŒŒ์ผ ๋‚ด์˜ ์ปดํฌ๋„ŒํŠธ ๊ณ„์ธต, ํ† ํฐ ๋งคํ•‘, ๋ณ€์ˆ˜ ๋ชจ๋“œ๋ฅผ ๋ถ„์„ํ•ด ๊ฐœ๋ฐœ์šฉ ์ŠคํŽ™ ๋ฌธ์„œ๋ฅผ ๋‹จ ๋ช‡ ๋ถ„ ๋งŒ์— ์ž๋™ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค [15-17]. ์ด๋Š” ๋‹จ์ˆœํ•œ ํ† ํฐ ๋ณ€ํ™˜์„ ๋„˜์–ด ๋””์ž์ธ ์˜๋„๋ฅผ ์—”์ง€๋‹ˆ์–ด๋ง ๊ตฌํ˜„ ์ŠคํŽ™์œผ๋กœ ์ง๊ฒฐ์‹œํ‚ค๋Š” ๊ณ ๋„ํ™”๋œ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค [18, 19]. ## ๐Ÿ”— Knowledge Connections - **Related Topics:** [[Design Tokens]], [[Style Dictionary]], [[Dynamic Theming]], [[Component-Based Design]] - **Projects/Contexts:** [[React]], [[styled-components]], [[UXPin Merge]], [[Uber's uSpec]] - **Contradictions/Notes:** ์ „ํ†ต์ ์ธ ๋””์ž์ธ-๊ฐœ๋ฐœ ํ˜‘์—… ๋ฐฉ์‹์—์„œ๋Š” ๋””์ž์ด๋„ˆ๊ฐ€ ๋ชฉ์—…์„ ๋งŒ๋“ค๊ณ  ๊ฐœ๋ฐœ์ž๊ฐ€ ์ˆ˜๋™์œผ๋กœ ๊ฐ’์„ ํ•˜๋“œ์ฝ”๋”ฉํ•˜์—ฌ ์ฝ”๋“œ๋กœ ์˜ฎ๊ฒผ๊ธฐ ๋•Œ๋ฌธ์— ์ง€์†์ ์ธ ๋””์ž์ธ ๋“œ๋ฆฌํ”„ํŠธ(Design Drift)์™€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์œผ๋‚˜, ์ตœ์‹  Design-to-Code ํŒŒ์ดํ”„๋ผ์ธ์€ ๋””์ž์ธ ํ† ํฐ๊ณผ ์ž๋™ํ™”๋ฅผ ํ†ตํ•ด ์ด๋Ÿฌํ•œ ๊ฒฉ์ฐจ์™€ ๋น„ํšจ์œจ์„ ์›์ฒœ์ ์œผ๋กœ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค [4, 20]. --- *Last updated: 2026-04-26*