Search

์‹ค์Šต

04. ์‹ค์Šต โ€” Figma to Code

๋ชฉํ‘œ

Figma to Code ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์„ค์น˜ํ•˜๊ณ , ๊ฐ™์€ ์ปดํฌ๋„ŒํŠธ๋ฅผ Tailwind / Flutter / SwiftUI 3๊ฐ€์ง€๋กœ ๋ณ€ํ™˜ํ•ด๋ณธ๋‹ค. ์ดํ›„ AI๋กœ ํ›„์ฒ˜๋ฆฌํ•˜์—ฌ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ปดํฌ๋„ŒํŠธ๋กœ ๋งŒ๋“ ๋‹ค.

์ค€๋น„๋ฌผ

โ€ข
Figma ๊ณ„์ •
โ€ข
Figma to Code ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜ (Plugins โ†’ Manage โ†’ ๊ฒ€์ƒ‰)
โ€ข
VS Code + Copilot
โ€ข
Node.js 18+
โ€ข
(์„ ํƒ) Flutter SDK / Xcode โ€” ๊ฒฐ๊ณผ๋ฌผ ์ง์ ‘ ์‹คํ–‰ํ•ด๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด

์‹ค์Šต 1๋‹จ๊ณ„ โ€” ๋””์ž์ธ ์ค€๋น„

1.
Figma Community์—์„œ ๋ฌด๋ฃŒ ๋””์ž์ธ ํŒŒ์ผ 1๊ฐœ ๋ณต์ œ
2.
Card / Button / Modal ๊ฐ™์€ ๋ช…ํ™•ํ•œ ์ปดํฌ๋„ŒํŠธ 1๊ฐœ ์„ ํƒ
3.
์ฒดํฌ: Auto Layout์ด ์ ์šฉ๋˜์–ด ์žˆ์–ด์•ผ ๊ฒฐ๊ณผ ํ’ˆ์งˆ์ด ์ข‹์Œ
์ฒดํฌ: ๋…ธ๋“œ ํŠธ๋ฆฌ๊ฐ€ ๊น”๋”ํžˆ ์ •๋ฆฌ๋˜์–ด ์žˆ์Œ

์‹ค์Šต 2๋‹จ๊ณ„ โ€” Tailwind ๋ณ€ํ™˜

1.
์ปดํฌ๋„ŒํŠธ ์„ ํƒ โ†’ Plugins โ†’ Figma to Code ์‹คํ–‰
2.
์ถœ๋ ฅ: Tailwind, JSX ๋ชจ๋“œ ์„ ํƒ
3.
์ƒ‰์ƒ ๋ชจ๋“œ: Tailwind palette (๊ฐ€๊นŒ์šด ์ƒ‰์œผ๋กœ ๋งคํ•‘)
4.
Copy โ†’ VS Code์˜ ์ƒˆ ํŒŒ์ผ practice/01-tailwind.tsx์— ๋ถ™์—ฌ๋„ฃ๊ธฐ
์ฒดํฌ: ๋””์ž์ธ๊ณผ ์‹œ๊ฐ์ ์œผ๋กœ ๋น„์Šทํ•œ์ง€ (๋ธŒ๋ผ์šฐ์ € ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋˜๋Š” Tailwind Play https://play.tailwindcss.com/)

์‹ค์Šต 3๋‹จ๊ณ„ โ€” Flutter ๋ณ€ํ™˜

1.
๋™์ผ ์ปดํฌ๋„ŒํŠธ ์„ ํƒ (๊ทธ๋Œ€๋กœ)
2.
ํ”Œ๋Ÿฌ๊ทธ์ธ ์ถœ๋ ฅ: Flutter
3.
์˜ต์…˜: Material, Stateless
4.
Copy โ†’ practice/02-flutter.dart
์ฒดํฌ: Flutter SDK ์žˆ๋‹ค๋ฉด flutter create ํ›„ ์œ„์ ฏ์— ๋ถ™์—ฌ ์‹คํ–‰

์‹ค์Šต 4๋‹จ๊ณ„ โ€” SwiftUI ๋ณ€ํ™˜

1.
ํ”Œ๋Ÿฌ๊ทธ์ธ ์ถœ๋ ฅ: SwiftUI
2.
Copy โ†’ practice/03-swiftui.swift
์ฒดํฌ: ์ฝ”๋“œ ๊ตฌ์กฐ๊ฐ€ VStack/HStack ๊ธฐ๋ฐ˜์ธ์ง€

์‹ค์Šต 5๋‹จ๊ณ„ โ€” Custom Color ๋ชจ๋“œ ๋น„๊ต

1.
ํ”Œ๋Ÿฌ๊ทธ์ธ์—์„œ Color: Custom (hex) ๋ชจ๋“œ๋กœ ๋ณ€๊ฒฝ
2.
Tailwind ๋‹ค์‹œ ๋ณ€ํ™˜ โ†’ practice/04-tailwind-customcolor.tsx
3.
๋‘ ๊ฒฐ๊ณผ ๋น„๊ต
โ€ข
Tailwind palette: ์ผ๊ด€์„ฑ โ†‘, ์ •ํ™•๋„ โ†“
โ€ข
Custom hex: ์ •ํ™•๋„ โ†‘, ๋””์ž์ธ ์‹œ์Šคํ…œ ์ผ์น˜ โ†“
์ฒดํฌ: ์–ด๋–ค ๋ชจ๋“œ๊ฐ€ ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ์— ๋งž๋Š”์ง€ ์˜์‚ฌ๊ฒฐ์ •

์‹ค์Šต 6๋‹จ๊ณ„ โ€” AI ํ›„์ฒ˜๋ฆฌ (์žฌ์‚ฌ์šฉ ์ปดํฌ๋„ŒํŠธํ™”)

Copilot์— practice/01-tailwind.tsx ์—ด๊ณ :
์ด ์ •์  ๋งˆํฌ์—…์„ React ์ปดํฌ๋„ŒํŠธ๋กœ ๋ฆฌํŒฉํ† ๋งํ•ด์ค˜. - ์ ์ ˆํ•œ props ์ถ”๋ก  (name, description, image ๋“ฑ) - TypeScript ํƒ€์ž… ์ •์˜ - src/components/Card.tsx ๋กœ ์ €์žฅ - hex ์ƒ‰์ƒ์ด ์žˆ์œผ๋ฉด ์ธ๋ผ์ธ ๊ทธ๋Œ€๋กœ ์œ ์ง€
Plain Text
๋ณต์‚ฌ
์ฒดํฌ: Props ๋ฐ›๋Š” ์žฌ์‚ฌ์šฉ ์ปดํฌ๋„ŒํŠธ๋กœ ๋ณ€ํ™˜ ์™„๋ฃŒ

์‹ค์Šต 7๋‹จ๊ณ„ โ€” ๋””์ž์ธ ํ† ํฐ ์น˜ํ™˜

Copilot:
์ด ํŒŒ์ผ์˜ hex ์ƒ‰์ƒ๋“ค์„ tailwind.config.js์˜ theme.extend๋กœ ๋“ฑ๋กํ•˜๊ณ , ์ปดํฌ๋„ŒํŠธ๋Š” ํ† ํฐ ์ด๋ฆ„(bg-brand-500 ๋“ฑ)์„ ์‚ฌ์šฉํ•˜๋„๋ก ์ˆ˜์ •ํ•ด์ค˜.
Plain Text
๋ณต์‚ฌ
์ฒดํฌ:
โ€ข
tailwind.config.js์— ์ƒ‰์ƒ ํ† ํฐ ๋“ฑ๋ก
โ€ข
์ปดํฌ๋„ŒํŠธ์—์„œ hex ์‚ฌ๋ผ์ง

์‹ค์Šต 8๋‹จ๊ณ„ โ€” ๋‹ค๋ฅธ ๋„๊ตฌ์™€ ๋น„๊ต

๊ฐ™์€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋‹ค์Œ 3๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ๊ฒฐ๊ณผ ๋น„๊ต:
1.
Figma to Code (Tailwind JSX)
2.
๊ณต์‹ Figma MCP (Copilot ์ฑ„ํŒ…)
3.
Framelink MCP (URL ๊ธฐ๋ฐ˜)
๋น„๊ต ํ•ญ๋ชฉ:
โ€ข
์ฝ”๋“œ ํ’ˆ์งˆ / ๊ฐ€๋…์„ฑ
โ€ข
๋””์ž์ธ ์ •ํ™•๋„
โ€ข
์ปดํฌ๋„ŒํŠธ ๋ถ„๋ฆฌ ์ •๋„
โ€ข
๋””์ž์ธ ํ† ํฐ ํ™œ์šฉ๋„
โ€ข
์ž‘์—… ์‹œ๊ฐ„

ํšŒ๊ณ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ

์–ด๋–ค ๋„๊ตฌ๊ฐ€ ์–ด๋–ค ์ƒํ™ฉ์— ์ ํ•ฉํ•œ์ง€ ์ •๋ฆฌ๋๋Š”๊ฐ€?
AI + ๊ฒฐ์ •์  ๋ณ€ํ™˜์˜ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์›Œํฌํ”Œ๋กœ์˜ ์žฅ์ ์€?
๋””์ž์ธ ํ† ํฐ ๋งคํ•‘์ด ๊ฐ€์žฅ ์ž˜ ๋˜๋Š” ๋„๊ตฌ๋Š”?
Flutter/SwiftUI๊นŒ์ง€ ํ•„์š”ํ•œ ํ”„๋กœ์ ํŠธ๋ผ๋ฉด ์–ด๋–ค ๋„๊ตฌ ์กฐํ•ฉ์ด ์ตœ์ ์ธ๊ฐ€?