워크플로우 전략
Design→Code, Code→Design, 양방향 동기화 - 세 가지 AI 워크플로우 비교
핵심 요약
- AI와 디자인 시스템을 잇는 방식을 Design→Code, Code→Design, 양방향 동기화 세 가지로 나누고, 팀 구성과 DS 성숙도로 고르는 기준을 정리한다.
- Design→Code는 Figma Dev Mode MCP로 명세 JSON을 뽑아 AI가 코드와 PR을 만든다. 브랜드 가이드가 엄격하고 디자이너가 주도하는 팀에 맞다.
- Code→Design(바이브코딩)은 작동하는 UI를 먼저 만든 뒤 Stitch MCP로 디자인 에셋을 뽑고 토큰을 역추출한다. MVP나 개발자 중심 팀에 어울린다.
- 양방향 동기화는 Token Bridge와 Change Detection으로 드리프트를 줄이지만, 구축과 운영이 복잡해 제품·팀 규모가 큰 성숙 단계에 권한다.
- 어떤 워크플로우든 타입체크·린트·A11y·Visual Diff 검증 게이트가 빠지면 안 된다. AI 생성 코드의 45%에 보안 취약점이 있으니 보안 검증도 반드시 넣는다.
AI와 디자인 시스템을 묶는 길은 하나가 아닙니다. 프로젝트 상황과 팀 구성이 다르면 맞는 워크플로우도 달라집니다.
세 가지 워크플로우
| 워크플로우 | 적합한 상황 | 장점 | 단점 |
|---|---|---|---|
| Design → Code | 디자이너 주도, 브랜드 중심 | 시각적 완성도 높음 | 개발 병목 발생 |
| Code → Design | 개발자 주도, 빠른 MVP | 즉시 작동하는 결과물 | 디자인 일관성 관리 필요 |
| 양방향 동기화 | 제품/팀 규모↑, DS 성숙 단계 | 드리프트 최소화 | 구축/운영 복잡도 증가 |
다음 장 안내
디자인 시스템 자체를 AI로 빠르게 구축/진화시키는 전략(AI-First DS Evolution)은 다음 장 Ch6. AI 기반 DS 진화에서 별도로 다룹니다.
워크플로우 1: Design → Code
전통적 접근의 AI 강화
Figma Dev Mode + MCP 서버
Figma MCP 서버 (2025 베타)
Figma Dev Mode MCP 서버가 베타로 나오면서, AI 코딩 도구(Claude Code, Cursor 등)가 Figma 디자인 파일의 컨텍스트를 바로 가져옵니다. Annotation(접근성, 동작, 콘텐츠 정보)도 AI 코드 생성에 쓰입니다. Figma Git 네이티브 통합 덕분에 디자이너가 GitHub/GitLab에 직접 브랜치·커밋·머지도 합니다.
// Figma에서 추출된 컴포넌트 명세
{
"component": "Card",
"variant": "elevated",
"properties": {
"padding": "{spacing.4}",
"borderRadius": "{radius.lg}",
"shadow": "{shadow.md}"
},
"slots": {
"header": { "component": "CardHeader" },
"content": { "component": "CardContent" },
"footer": { "component": "CardFooter" }
}
}코드 생성 프롬프트
## Task
Figma 명세를 기반으로 React 컴포넌트를 생성하세요.
## Design Spec
{figma_json}
## Constraints
1. 디자인 시스템 컴포넌트만 사용
2. 하드코딩 금지, 토큰 참조
3. TypeScript strict mode
4. 접근성 요구사항 충족
## Output
완전한 TSX 컴포넌트 코드적합한 상황
- 브랜드 가이드라인이 엄격한 프로젝트
- 디자이너가 주도하는 팀
- 시각적 완성도가 최우선인 제품
- 기존 디자인 시스템이 있는 경우
워크플로우 2: Code → Design (바이브코딩)
개발 먼저, 디자인은 나중에
사례: 바이브코딩 → Stitch
1단계: 바이브코딩으로 빠르게 구현
# Claude Code로 대시보드 구현
> "사용자 분석 대시보드를 만들어줘.
- 상단에 KPI 카드 4개
- 중간에 차트 2개 (막대, 선)
- 하단에 최근 활동 테이블"AI가 shadcn/ui를 바탕으로 바로 작동하는 UI를 만듭니다.
2단계: Stitch로 디자인 에셋 생성
// Stitch MCP를 통한 디자인 생성
const screen = await stitch.generateScreenFromText({
projectId: 'my-project',
prompt: `
대시보드 화면을 디자인해줘:
- 상단: KPI 카드 4개 (매출, 사용자, 전환율, 이탈률)
- 중간: 막대 차트 + 선 차트
- 하단: 데이터 테이블
- 스타일: 미니멀, 다크 모드 지원
`,
deviceType: 'DESKTOP',
})3단계: 디자인 시스템으로 역추출
// 생성된 UI에서 토큰 추출
const extractedTokens = analyzeGeneratedUI({
colors: extractColors(screen),
spacing: extractSpacing(screen),
typography: extractTypography(screen),
})
// 디자인 시스템에 반영
await updateDesignTokens(extractedTokens)Stitch MCP 활용 패턴
실전 패턴: 컴포넌트 디자인 생성
// 1. 프로젝트 생성
const project = await mcp.stitch.create_project({
title: 'My Design System',
})
// 2. 컴포넌트별 스크린 생성
const components = [
'로그인 폼 - 이메일/비밀번호 입력, 소셜 로그인 버튼',
'사용자 프로필 카드 - 아바타, 이름, 역할, 통계',
'알림 드롭다운 - 읽음/안읽음, 시간, 액션 버튼',
'데이터 테이블 - 정렬, 필터, 페이지네이션',
]
for (const component of components) {
await mcp.stitch.generate_screen_from_text({
projectId: project.name.split('/')[1],
prompt: component,
deviceType: 'DESKTOP',
})
}
// 3. 생성된 스크린 조회
const screens = await mcp.stitch.list_screens({
projectId: project.name.split('/')[1],
})적합한 상황
- MVP/프로토타입 단계
- 개발자 중심 팀
- 빠른 이터레이션이 필요한 스타트업
- "일단 작동하는 것" 우선
워크플로우 3: 양방향 동기화
Design ↔ Code 실시간 동기화
토큰 양방향 동기화
// figma-sync.ts
interface SyncConfig {
figmaFileId: string
tokensPath: string
direction: 'figma-to-code' | 'code-to-figma' | 'bidirectional'
}
async function syncTokens(config: SyncConfig) {
if (config.direction === 'figma-to-code' || config.direction === 'bidirectional') {
// Figma → Code
const figmaTokens = await fetchFigmaVariables(config.figmaFileId)
const codeTokens = transformToCodeFormat(figmaTokens)
await writeTokens(config.tokensPath, codeTokens)
}
if (config.direction === 'code-to-figma' || config.direction === 'bidirectional') {
// Code → Figma
const codeTokens = await readTokens(config.tokensPath)
const figmaVariables = transformToFigmaFormat(codeTokens)
await updateFigmaVariables(config.figmaFileId, figmaVariables)
}
}컴포넌트 변경 감지 및 동기화
// component-sync.ts
interface ComponentChange {
component: string
changeType: 'props' | 'styles' | 'structure'
source: 'design' | 'code'
diff: object
}
async function handleComponentChange(change: ComponentChange) {
if (change.source === 'design') {
// 디자인 변경 → 코드 업데이트
const updatedCode = await generateCodeFromDesign(change)
await createPullRequest({
title: `sync: Update ${change.component} from design`,
body: `디자인 변경사항 자동 동기화\n\n${JSON.stringify(change.diff, null, 2)}`,
files: updatedCode,
})
} else {
// 코드 변경 → 디자인 알림
await notifyDesigner({
component: change.component,
message: `코드에서 ${change.changeType} 변경됨. 디자인 업데이트 필요`,
diff: change.diff,
})
}
}워크플로우 선택 가이드
의사결정 매트릭스
| 질문 | Design→Code | Code→Design | 양방향 동기화 |
|---|---|---|---|
| 디자이너 주도? | ✅ 필수 | ❌ 불필요 | ✅ 필요 |
| 속도/MVP 우선? | ⚠️ 보통 | ✅ 매우 적합 | ⚪ 보통 |
| 디자인-코드 드리프트 허용 | ✅ 낮음 | ⚠️ 높음 | ✅ 매우 낮음 |
| 초기 구축 비용 | ⚪ 중간 | ✅ 낮음 | ❌ 높음 |
| 운영 복잡도 | ⚪ 중간 | ✅ 낮음 | ❌ 높음 |
검증 파이프라인 (공통)
어떤 워크플로우를 쓰든 검증은 빼놓을 수 없습니다.
CI 워크플로우
# .github/workflows/design-system-validate.yml
name: Design System Validation
on:
pull_request:
paths:
- 'packages/ui/**'
- 'tokens/**'
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Type Check
run: yarn tsc --noEmit
- name: Lint (DS Rules)
run: yarn lint:design-system
- name: Accessibility Audit
run: yarn test:a11y
- name: Visual Regression
run: yarn test:visualAI 코드 생성 도구 생태계
Figma Config 2025에서 발표된 변화와 함께 AI 코드 생성 도구 생태계가 빠르게 바뀌고 있습니다.
Figma 신제품 (2025.05 Config)
- Figma Make: 프롬프트에서 인터랙티브 프로토타입/웹앱 생성. Figma 라이브러리와 붙어 디자인 시스템 컴포넌트를 자동으로 쓰고, DB를 연동하면 동적 프로토타입도 만든다
- Figma Sites: AI 기반 웹사이트 제작 및 퍼블리싱 도구
- Figma Buzz: 마케팅팀을 위한 브랜드 일관성 유지 비주얼 에셋 대량 제작 도구
- Figma Draw: 향상된 벡터 편집 및 일러스트 도구
AI 앱 빌더 비교
| 도구 | 핵심 역할 | 강점 |
|---|---|---|
| v0.dev (Vercel) | UI 컴포넌트 생성 | React + Tailwind, 디자인 품질 우수 |
| Bolt.new (StackBlitz) | 풀스택 앱 빌더 | 라이브 IDE, Supabase 통합 |
| Lovable | 올인원 앱 빌더 | 비개발자 접근성 (8개월 만에 ARR $100M 달성) |
AI 생성 코드 보안 주의
AI 앱 빌더 시장 규모는 $47억(2026년 추정)에 이르지만, Veracode 연구를 보면 AI 생성 코드의 45%에 보안 취약점이 들어 있습니다. 워크플로우에 보안 검증 단계를 꼭 넣으세요.
워크플로우별 도구 매핑
| 워크플로우 | 추천 도구 | 용도 |
|---|---|---|
| Design → Code | Figma MCP + Claude Code | 디자인 명세 기반 코드 생성 |
| Code → Design | Stitch + Figma Make | 코드에서 디자인 에셋 역생성 |
| 양방향 동기화 | Tokens Studio + Figma MCP | 토큰/컴포넌트 실시간 동기화 |
| 빠른 프로토타입 | v0.dev, Bolt.new, Lovable | 아이디어 → 작동 앱 즉시 생성 |