@kood/claude-code 0.7.6 → 0.7.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +215 -39
- package/package.json +1 -1
- package/templates/.claude/skills/design/SKILL.md +199 -0
- package/templates/.claude/skills/design/references/accessibility.md +106 -0
- package/templates/.claude/skills/design/references/checklist.md +41 -0
- package/templates/.claude/skills/design/references/core-principles.md +66 -0
- package/templates/.claude/skills/design/references/global-uiux.md +216 -0
- package/templates/.claude/skills/design/references/korea-uiux.md +227 -0
- package/templates/.claude/skills/design/references/patterns.md +250 -0
- package/templates/.claude/skills/design/references/responsive.md +248 -0
- package/templates/.claude/skills/design/references/safe-area.md +202 -0
- package/templates/.claude/skills/design/references/systems.md +116 -0
- package/templates/.claude/skills/design/references/trends.md +75 -0
- package/templates/.claude/skills/global-uiux-design/AGENTS.md +0 -320
- package/templates/.claude/skills/global-uiux-design/SKILL.md +0 -1089
- package/templates/.claude/skills/global-uiux-design/references/accessibility.md +0 -401
- package/templates/.claude/skills/global-uiux-design/references/color-system.md +0 -275
- package/templates/.claude/skills/global-uiux-design/references/design-philosophy.md +0 -206
- package/templates/.claude/skills/global-uiux-design/references/design-systems.md +0 -446
- package/templates/.claude/skills/korea-uiux-design/AGENTS.md +0 -310
- package/templates/.claude/skills/korea-uiux-design/SKILL.md +0 -980
- package/templates/.claude/skills/korea-uiux-design/references/accessibility.md +0 -298
- package/templates/.claude/skills/korea-uiux-design/references/checklist.md +0 -107
- package/templates/.claude/skills/korea-uiux-design/references/color-system.md +0 -156
- package/templates/.claude/skills/korea-uiux-design/references/design-philosophy.md +0 -25
- package/templates/.claude/skills/korea-uiux-design/references/icon-guide.md +0 -180
- package/templates/.claude/skills/korea-uiux-design/references/micro-interactions.md +0 -259
- package/templates/.claude/skills/korea-uiux-design/references/responsive-patterns.md +0 -115
- package/templates/.claude/skills/korea-uiux-design/references/service-patterns.md +0 -206
- package/templates/.claude/skills/korea-uiux-design/references/state-patterns.md +0 -320
- package/templates/.claude/skills/korea-uiux-design/references/typography.md +0 -70
|
@@ -1,980 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: korea-uiux-design
|
|
3
|
-
description: 한국 사용자 대상 앱/웹 UI/UX 디자인 구현. shadcn/ui 기본 스타일 대신 토스/카카오/배민/플렉스 등 국내 앱 스타일 적용.
|
|
4
|
-
user-invocable: true
|
|
5
|
-
ui-only: true
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
@../../instructions/agent-patterns/read-parallelization.md
|
|
9
|
-
@../../instructions/agent-patterns/agent-teams-usage.md
|
|
10
|
-
@../../instructions/validation/forbidden-patterns.md
|
|
11
|
-
@../../instructions/validation/required-behaviors.md
|
|
12
|
-
|
|
13
|
-
# 한국형 앱 UI/UX 디자인
|
|
14
|
-
|
|
15
|
-
<context>
|
|
16
|
-
|
|
17
|
-
**Purpose:** 한국 사용자 대상 앱/웹 UI/UX 디자인 구현. shadcn/ui 기본 스타일 대신 토스/카카오/배민/플렉스 등 국내 앱 스타일 적용.
|
|
18
|
-
|
|
19
|
-
**Trigger:** 프론트엔드 UI/UX 구현, React/Vue 컴포넌트 디자인, 반응형 웹/앱 개발, 한국 사용자 대상 서비스
|
|
20
|
-
|
|
21
|
-
**Key Features:**
|
|
22
|
-
- 정보 밀도와 가독성 균형
|
|
23
|
-
- 절제된 미니멀리즘
|
|
24
|
-
- 대화하는 듯한 UX 라이팅
|
|
25
|
-
- WCAG AA 접근성 기준
|
|
26
|
-
|
|
27
|
-
</context>
|
|
28
|
-
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
<parallel_agent_execution>
|
|
32
|
-
|
|
33
|
-
### ⚠️ Agent Teams 우선 원칙
|
|
34
|
-
|
|
35
|
-
> **복잡한 병렬 작업 시 Agent Teams를 기본으로 사용**
|
|
36
|
-
> - Agent Teams 가용 → TeamCreate → 팀원 spawn → 병렬 협업
|
|
37
|
-
> - Agent Teams 미가용 → Task 병렬 호출 (폴백)
|
|
38
|
-
|
|
39
|
-
**Agent Teams 모드 (기본)**:
|
|
40
|
-
```typescript
|
|
41
|
-
TeamCreate({ team_name: "korea-uiux-team", description: "한국형 UI/UX 디자인" })
|
|
42
|
-
Task(subagent_type="designer", team_name="korea-uiux-team", name="designer", ...)
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
**수명주기 관리:**
|
|
46
|
-
- 팀원 태스크 완료 → 즉시 `shutdown_request` 전송
|
|
47
|
-
- 종료 후 `TaskList`로 다음 태스크 확인
|
|
48
|
-
- 모든 작업 완료 → `TeamDelete`로 팀 해산
|
|
49
|
-
|
|
50
|
-
---
|
|
51
|
-
|
|
52
|
-
## 한국형 UI/UX 병렬 에이전트 실행
|
|
53
|
-
|
|
54
|
-
### 핵심 원칙
|
|
55
|
-
|
|
56
|
-
| 원칙 | 한국 서비스 적용 | 기대 효과 |
|
|
57
|
-
|------|----------------|----------|
|
|
58
|
-
| **PARALLEL** | 본인인증 + 결제 + 주소입력 동시 구현 | 5-10배 속도 향상 |
|
|
59
|
-
| **LOCALIZED** | 날짜/통화/전화번호 형식 병렬 처리 | 지역화 품질 극대화 |
|
|
60
|
-
| **COMPLIANT** | 법규 검증 병렬 실행 (개인정보보호법/전자금융거래법/웹접근성) | 법적 리스크 사전 차단 |
|
|
61
|
-
|
|
62
|
-
**한국 서비스 특화 병렬 패턴:**
|
|
63
|
-
```typescript
|
|
64
|
-
// ❌ 순차 실행 (느림)
|
|
65
|
-
Task("본인인증 구현") // 60초
|
|
66
|
-
Task("결제 구현") // 60초
|
|
67
|
-
Task("주소입력 구현") // 60초
|
|
68
|
-
// 총 180초
|
|
69
|
-
|
|
70
|
-
// ✅ 병렬 실행 (빠름)
|
|
71
|
-
Task("본인인증 구현") // 단일 메시지에서
|
|
72
|
-
Task("결제 구현") // 동시 호출
|
|
73
|
-
Task("주소입력 구현") // 동시 실행
|
|
74
|
-
// 총 60초 (가장 긴 작업 기준)
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
---
|
|
78
|
-
|
|
79
|
-
### 한국형 UI 병렬 패턴
|
|
80
|
-
|
|
81
|
-
**패턴 1: 본인인증 + KYC 동시 구현**
|
|
82
|
-
|
|
83
|
-
```typescript
|
|
84
|
-
// 이커머스/핀테크 필수 컴포넌트
|
|
85
|
-
Task(subagent_type="designer", model="sonnet",
|
|
86
|
-
prompt=`휴대폰 본인인증 컴포넌트 구현
|
|
87
|
-
- NICE/KCB 인증 모듈 연동
|
|
88
|
-
- 인증번호 입력 UI
|
|
89
|
-
- 타이머 (3분 제한)
|
|
90
|
-
- 한국형 전화번호 형식 (010-XXXX-XXXX)`)
|
|
91
|
-
|
|
92
|
-
Task(subagent_type="designer", model="sonnet",
|
|
93
|
-
prompt=`신분증 인증 컴포넌트 구현
|
|
94
|
-
- 주민등록증/운전면허증 촬영
|
|
95
|
-
- OCR 연동 UI
|
|
96
|
-
- 개인정보 마스킹 (주민등록번호 뒷자리)`)
|
|
97
|
-
|
|
98
|
-
Task(subagent_type="implementation-executor", model="sonnet",
|
|
99
|
-
prompt=`본인인증 Server Functions
|
|
100
|
-
- NICE/KCB API 연동
|
|
101
|
-
- 세션 관리 (인증 상태 저장)
|
|
102
|
-
- 개인정보 암호화 (AES-256)`)
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
**패턴 2: 결제 시스템 병렬 구현**
|
|
106
|
-
|
|
107
|
-
```typescript
|
|
108
|
-
// 한국 주요 PG사 통합
|
|
109
|
-
Task(subagent_type="designer", model="sonnet",
|
|
110
|
-
prompt=`결제 수단 선택 UI
|
|
111
|
-
- 카드/계좌이체/간편결제 (토스/카카오페이/네이버페이)
|
|
112
|
-
- 할인/포인트 적용
|
|
113
|
-
- 최종 금액 표시 (원화 3자리 콤마)`)
|
|
114
|
-
|
|
115
|
-
Task(subagent_type="implementation-executor", model="sonnet",
|
|
116
|
-
prompt=`PG 연동 Server Functions
|
|
117
|
-
- 토스페이먼츠/KG이니시스 API
|
|
118
|
-
- 결제 승인/취소/환불
|
|
119
|
-
- 전자금융거래법 준수 (거래 로그 7년 보관)`)
|
|
120
|
-
|
|
121
|
-
Task(subagent_type="code-reviewer", model="opus",
|
|
122
|
-
prompt=`결제 보안 검토
|
|
123
|
-
- PCI-DSS 준수
|
|
124
|
-
- 카드번호 비저장 (토큰 방식)
|
|
125
|
-
- 개인정보 처리방침 확인`)
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
**패턴 3: 주소/배송 병렬 구현**
|
|
129
|
-
|
|
130
|
-
```typescript
|
|
131
|
-
// 한국 주소 시스템
|
|
132
|
-
Task(subagent_type="designer", model="sonnet",
|
|
133
|
-
prompt=`주소 입력 컴포넌트
|
|
134
|
-
- Daum 우편번호 API 연동
|
|
135
|
-
- 도로명주소 + 지번주소
|
|
136
|
-
- 상세주소 입력 (필수)`)
|
|
137
|
-
|
|
138
|
-
Task(subagent_type="designer", model="sonnet",
|
|
139
|
-
prompt=`배송 추적 UI
|
|
140
|
-
- 택배사 연동 (CJ대한통운/우체국/로젠)
|
|
141
|
-
- 실시간 위치 표시
|
|
142
|
-
- 배송 상태 (배송준비/배송중/배송완료)`)
|
|
143
|
-
|
|
144
|
-
Task(subagent_type="implementation-executor", model="sonnet",
|
|
145
|
-
prompt=`배송 Server Functions
|
|
146
|
-
- Daum Postcode API
|
|
147
|
-
- 택배사 API 연동
|
|
148
|
-
- 배송지 변경/반품 로직`)
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
---
|
|
152
|
-
|
|
153
|
-
### 지역화 요소 병렬 처리
|
|
154
|
-
|
|
155
|
-
**패턴: 한국 형식 동시 구현**
|
|
156
|
-
|
|
157
|
-
```typescript
|
|
158
|
-
// 날짜/통화/전화번호/주민등록번호
|
|
159
|
-
Task(subagent_type="implementation-executor", model="sonnet",
|
|
160
|
-
prompt=`날짜 형식 한국화
|
|
161
|
-
- YYYY년 MM월 DD일 (일, 월, 화)
|
|
162
|
-
- 24시간 형식 (HH:mm)
|
|
163
|
-
- day.js 한국어 로케일`)
|
|
164
|
-
|
|
165
|
-
Task(subagent_type="implementation-executor", model="sonnet",
|
|
166
|
-
prompt=`통화 형식 한국화
|
|
167
|
-
- 원화 표시: 15,000원
|
|
168
|
-
- 3자리 콤마 (toLocaleString)
|
|
169
|
-
- 소수점 제거 (정수만)`)
|
|
170
|
-
|
|
171
|
-
Task(subagent_type="implementation-executor", model="sonnet",
|
|
172
|
-
prompt=`전화번호 형식 한국화
|
|
173
|
-
- 010-XXXX-XXXX
|
|
174
|
-
- 02-XXX-XXXX (서울 지역번호)
|
|
175
|
-
- 입력 시 자동 하이픈`)
|
|
176
|
-
|
|
177
|
-
Task(subagent_type="implementation-executor", model="sonnet",
|
|
178
|
-
prompt=`주민등록번호/사업자등록번호 처리
|
|
179
|
-
- 형식: XXXXXX-XXXXXXX / XXX-XX-XXXXX
|
|
180
|
-
- 마스킹: XXXXXX-*******
|
|
181
|
-
- 암호화 저장 (AES-256)`)
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
---
|
|
185
|
-
|
|
186
|
-
### 타이포그래피 병렬 최적화
|
|
187
|
-
|
|
188
|
-
**패턴: 한글 + 영문 폴백 동시 설정**
|
|
189
|
-
|
|
190
|
-
```typescript
|
|
191
|
-
// Pretendard + 영문 폴백
|
|
192
|
-
Task(subagent_type="designer", model="sonnet",
|
|
193
|
-
prompt=`한글 타이포그래피 설정
|
|
194
|
-
- 주 폰트: Pretendard (가변 폰트)
|
|
195
|
-
- 크기: 14px/16px (모바일/데스크톱)
|
|
196
|
-
- 행간: 1.5-1.7 (한글 최적)
|
|
197
|
-
- 자간: -0.02em (밀도 조절)`)
|
|
198
|
-
|
|
199
|
-
Task(subagent_type="designer", model="sonnet",
|
|
200
|
-
prompt=`영문 폴백 설정
|
|
201
|
-
- Inter/SF Pro (영문 전용)
|
|
202
|
-
- font-family: Pretendard, -apple-system, Roboto, sans-serif
|
|
203
|
-
- 숫자: tabular-nums (정렬)`)
|
|
204
|
-
|
|
205
|
-
Task(subagent_type="designer", model="sonnet",
|
|
206
|
-
prompt=`웹폰트 최적화
|
|
207
|
-
- woff2 포맷
|
|
208
|
-
- font-display: swap
|
|
209
|
-
- subset: 한글 2,350자 + 영문/숫자`)
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
---
|
|
213
|
-
|
|
214
|
-
### 법규 준수 병렬 검증
|
|
215
|
-
|
|
216
|
-
**패턴: 개인정보보호법 + 전자금융거래법 + 웹접근성 동시 검증**
|
|
217
|
-
|
|
218
|
-
```typescript
|
|
219
|
-
// 3가지 법규 병렬 검토
|
|
220
|
-
Task(subagent_type="analyst", model="sonnet",
|
|
221
|
-
prompt=`개인정보보호법 요구사항 분석
|
|
222
|
-
- 수집 항목 명시 (최소 수집 원칙)
|
|
223
|
-
- 동의 절차 (필수/선택 구분)
|
|
224
|
-
- 개인정보 처리방침 필수 표시
|
|
225
|
-
- 제3자 제공 동의 별도`)
|
|
226
|
-
|
|
227
|
-
Task(subagent_type="analyst", model="sonnet",
|
|
228
|
-
prompt=`전자금융거래법 요구사항 분석
|
|
229
|
-
- 거래 내역 7년 보관
|
|
230
|
-
- 오류 정정 요구권 안내
|
|
231
|
-
- 이용약관 명시
|
|
232
|
-
- 전자서명/공인인증서`)
|
|
233
|
-
|
|
234
|
-
Task(subagent_type="code-reviewer", model="opus",
|
|
235
|
-
prompt=`웹접근성 (KWCAG 2.2) 검증
|
|
236
|
-
- 키보드 접근성 (Tab 순서)
|
|
237
|
-
- ARIA 레이블 (스크린 리더)
|
|
238
|
-
- 색상 대비 4.5:1 (WCAG AA)
|
|
239
|
-
- 대체 텍스트 (이미지)`)
|
|
240
|
-
|
|
241
|
-
Task(subagent_type="code-reviewer", model="opus",
|
|
242
|
-
prompt=`보안 검증
|
|
243
|
-
- XSS/CSRF 방어
|
|
244
|
-
- SQL Injection 방지 (Prisma)
|
|
245
|
-
- 비밀번호 암호화 (bcrypt)
|
|
246
|
-
- HTTPS 강제`)
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
---
|
|
250
|
-
|
|
251
|
-
### 반응형 병렬 구현
|
|
252
|
-
|
|
253
|
-
**패턴: 모바일 우선 + 데스크톱 동시 구현**
|
|
254
|
-
|
|
255
|
-
```typescript
|
|
256
|
-
// 한국 모바일 사용률 80%+ 고려
|
|
257
|
-
Task(subagent_type="designer", model="sonnet",
|
|
258
|
-
prompt=`모바일 UI 구현 (우선)
|
|
259
|
-
- 화면: 375px (iPhone SE 기준)
|
|
260
|
-
- 터치 타겟: 44-48px (접근성)
|
|
261
|
-
- 하단 네비게이션 (엄지 영역)
|
|
262
|
-
- Safe Area (iOS 노치)`)
|
|
263
|
-
|
|
264
|
-
Task(subagent_type="designer", model="sonnet",
|
|
265
|
-
prompt=`데스크톱 UI 구현
|
|
266
|
-
- 화면: 1440px
|
|
267
|
-
- 사이드바 네비게이션
|
|
268
|
-
- 마우스 호버 상태
|
|
269
|
-
- 키보드 단축키`)
|
|
270
|
-
|
|
271
|
-
Task(subagent_type="designer", model="sonnet",
|
|
272
|
-
prompt=`반응형 테스트
|
|
273
|
-
- 브레이크포인트: 375/768/1024/1440
|
|
274
|
-
- 크로스 브라우징 (Chrome/Safari/Samsung Internet)
|
|
275
|
-
- 다크모드 대응`)
|
|
276
|
-
```
|
|
277
|
-
|
|
278
|
-
---
|
|
279
|
-
|
|
280
|
-
### Model Routing (한국 서비스 특화)
|
|
281
|
-
|
|
282
|
-
| 작업 유형 | 에이전트 | 모델 | 이유 |
|
|
283
|
-
|----------|---------|------|------|
|
|
284
|
-
| **UI 컴포넌트** | designer | sonnet | 일반적인 UI 구현 |
|
|
285
|
-
| **복잡한 디자인 시스템** | designer | opus | 브랜드 아이덴티티 반영 |
|
|
286
|
-
| **법규 요구사항 분석** | analyst | sonnet | 개인정보보호법/전자금융거래법 |
|
|
287
|
-
| **보안 검토** | code-reviewer | opus | XSS/CSRF/SQL Injection |
|
|
288
|
-
| **API 구현** | implementation-executor | sonnet | Server Functions, Prisma |
|
|
289
|
-
| **배포 검증** | deployment-validator | sonnet | typecheck/lint/build |
|
|
290
|
-
|
|
291
|
-
**모델 선택 예시:**
|
|
292
|
-
|
|
293
|
-
```typescript
|
|
294
|
-
// 간단한 UI → sonnet
|
|
295
|
-
Task(subagent_type="designer", model="sonnet",
|
|
296
|
-
prompt="버튼 컴포넌트 구현")
|
|
297
|
-
|
|
298
|
-
// 복잡한 디자인 시스템 → opus
|
|
299
|
-
Task(subagent_type="designer", model="opus",
|
|
300
|
-
prompt="토스 스타일 디자인 시스템 전체 설계")
|
|
301
|
-
|
|
302
|
-
// 법규 분석 → analyst (sonnet)
|
|
303
|
-
Task(subagent_type="analyst", model="sonnet",
|
|
304
|
-
prompt="개인정보보호법 요구사항 분석")
|
|
305
|
-
|
|
306
|
-
// 보안 검토 → code-reviewer (opus)
|
|
307
|
-
Task(subagent_type="code-reviewer", model="opus",
|
|
308
|
-
prompt="결제 시스템 보안 검증 (PCI-DSS)")
|
|
309
|
-
```
|
|
310
|
-
|
|
311
|
-
---
|
|
312
|
-
|
|
313
|
-
### 실전 시나리오
|
|
314
|
-
|
|
315
|
-
#### 시나리오 1: 이커머스 (쿠팡/네이버쇼핑 스타일)
|
|
316
|
-
|
|
317
|
-
**목표:** 상품 구매 플로우 전체 구현 (상품 목록 → 상세 → 결제 → 배송)
|
|
318
|
-
|
|
319
|
-
```typescript
|
|
320
|
-
// Phase 1: UI 병렬 구현
|
|
321
|
-
Task(subagent_type="designer", model="sonnet",
|
|
322
|
-
prompt=`상품 목록 페이지
|
|
323
|
-
- 그리드 레이아웃 (2열/3열)
|
|
324
|
-
- 상품 카드 (이미지/가격/할인율)
|
|
325
|
-
- 필터/정렬 (가격순/인기순)`)
|
|
326
|
-
|
|
327
|
-
Task(subagent_type="designer", model="sonnet",
|
|
328
|
-
prompt=`상품 상세 페이지
|
|
329
|
-
- 이미지 갤러리 (슬라이드)
|
|
330
|
-
- 옵션 선택 (색상/사이즈)
|
|
331
|
-
- 가격 표시 (할인가/원가)
|
|
332
|
-
- 구매/장바구니 버튼`)
|
|
333
|
-
|
|
334
|
-
Task(subagent_type="designer", model="sonnet",
|
|
335
|
-
prompt=`결제 페이지
|
|
336
|
-
- 주문 정보 (상품/수량)
|
|
337
|
-
- 주소 입력 (Daum Postcode)
|
|
338
|
-
- 결제 수단 (카드/간편결제)
|
|
339
|
-
- 최종 금액 (배송비 포함)`)
|
|
340
|
-
|
|
341
|
-
// Phase 2: API 병렬 구현
|
|
342
|
-
Task(subagent_type="implementation-executor", model="sonnet",
|
|
343
|
-
prompt=`상품 API Server Functions
|
|
344
|
-
- GET /products: 목록 조회
|
|
345
|
-
- GET /products/:id: 상세 조회
|
|
346
|
-
- Prisma Product 모델 사용`)
|
|
347
|
-
|
|
348
|
-
Task(subagent_type="implementation-executor", model="sonnet",
|
|
349
|
-
prompt=`주문 API Server Functions
|
|
350
|
-
- POST /orders: 주문 생성
|
|
351
|
-
- inputValidator로 Zod 검증
|
|
352
|
-
- 재고 확인 로직`)
|
|
353
|
-
|
|
354
|
-
Task(subagent_type="implementation-executor", model="sonnet",
|
|
355
|
-
prompt=`결제 API Server Functions
|
|
356
|
-
- POST /payments: 토스페이먼츠 연동
|
|
357
|
-
- 결제 승인/취소/환불
|
|
358
|
-
- 거래 로그 저장 (전자금융거래법)`)
|
|
359
|
-
|
|
360
|
-
// Phase 3: 법규 병렬 검증
|
|
361
|
-
Task(subagent_type="analyst", model="sonnet",
|
|
362
|
-
prompt=`전자상거래법 요구사항 검증
|
|
363
|
-
- 청약철회권 안내 (7일)
|
|
364
|
-
- 환불 정책 명시
|
|
365
|
-
- 사업자 정보 표시`)
|
|
366
|
-
|
|
367
|
-
Task(subagent_type="code-reviewer", model="opus",
|
|
368
|
-
prompt=`개인정보 보안 검토
|
|
369
|
-
- 결제 정보 암호화
|
|
370
|
-
- 주소 정보 접근 제어
|
|
371
|
-
- XSS/CSRF 방어`)
|
|
372
|
-
```
|
|
373
|
-
|
|
374
|
-
---
|
|
375
|
-
|
|
376
|
-
#### 시나리오 2: 핀테크 (토스/뱅크샐러드 스타일)
|
|
377
|
-
|
|
378
|
-
**목표:** 금융 계좌 연동 + 자산 관리 대시보드
|
|
379
|
-
|
|
380
|
-
```typescript
|
|
381
|
-
// Phase 1: KYC + 계좌 인증 병렬
|
|
382
|
-
Task(subagent_type="designer", model="sonnet",
|
|
383
|
-
prompt=`본인인증 플로우
|
|
384
|
-
- 휴대폰 인증 (NICE/KCB)
|
|
385
|
-
- 신분증 촬영 (OCR)
|
|
386
|
-
- 주민등록번호 마스킹`)
|
|
387
|
-
|
|
388
|
-
Task(subagent_type="designer", model="sonnet",
|
|
389
|
-
prompt=`계좌 연동 UI
|
|
390
|
-
- 은행 선택 (KB/신한/우리/하나)
|
|
391
|
-
- 1원 인증
|
|
392
|
-
- 연동 완료 확인`)
|
|
393
|
-
|
|
394
|
-
Task(subagent_type="implementation-executor", model="sonnet",
|
|
395
|
-
prompt=`금융 API 연동
|
|
396
|
-
- 오픈뱅킹 API
|
|
397
|
-
- 계좌 조회/거래내역
|
|
398
|
-
- 이체 실행`)
|
|
399
|
-
|
|
400
|
-
// Phase 2: 대시보드 병렬 구현
|
|
401
|
-
Task(subagent_type="designer", model="sonnet",
|
|
402
|
-
prompt=`자산 대시보드
|
|
403
|
-
- 총 자산 (원화 표시)
|
|
404
|
-
- 계좌별 잔액
|
|
405
|
-
- 지출 분석 차트`)
|
|
406
|
-
|
|
407
|
-
Task(subagent_type="designer", model="sonnet",
|
|
408
|
-
prompt=`거래 내역 리스트
|
|
409
|
-
- 날짜별 그룹화
|
|
410
|
-
- 입금/출금 구분
|
|
411
|
-
- 카테고리 태그`)
|
|
412
|
-
|
|
413
|
-
// Phase 3: 법규 병렬 검증
|
|
414
|
-
Task(subagent_type="analyst", model="sonnet",
|
|
415
|
-
prompt=`전자금융거래법 요구사항
|
|
416
|
-
- 거래 내역 7년 보관
|
|
417
|
-
- 오류 정정 요구권
|
|
418
|
-
- 전자서명/공인인증서`)
|
|
419
|
-
|
|
420
|
-
Task(subagent_type="code-reviewer", model="opus",
|
|
421
|
-
prompt=`금융 보안 검증
|
|
422
|
-
- 계좌번호 암호화
|
|
423
|
-
- 이체 한도 설정
|
|
424
|
-
- 이상 거래 탐지`)
|
|
425
|
-
```
|
|
426
|
-
|
|
427
|
-
---
|
|
428
|
-
|
|
429
|
-
#### 시나리오 3: 공공 서비스 (정부24 스타일)
|
|
430
|
-
|
|
431
|
-
**목표:** 민원 신청 시스템
|
|
432
|
-
|
|
433
|
-
```typescript
|
|
434
|
-
// Phase 1: UI 병렬 구현
|
|
435
|
-
Task(subagent_type="designer", model="sonnet",
|
|
436
|
-
prompt=`민원 신청 폼
|
|
437
|
-
- 다단계 폼 (개인정보 → 신청내용 → 첨부파일)
|
|
438
|
-
- 필수/선택 항목 표시
|
|
439
|
-
- 진행률 표시`)
|
|
440
|
-
|
|
441
|
-
Task(subagent_type="designer", model="sonnet",
|
|
442
|
-
prompt=`파일 업로드
|
|
443
|
-
- 드래그 앤 드롭
|
|
444
|
-
- 파일 타입 제한 (pdf/hwp/jpg)
|
|
445
|
-
- 용량 제한 (10MB)`)
|
|
446
|
-
|
|
447
|
-
// Phase 2: 웹접근성 병렬 검증
|
|
448
|
-
Task(subagent_type="code-reviewer", model="opus",
|
|
449
|
-
prompt=`KWCAG 2.2 준수 검증
|
|
450
|
-
- 키보드 접근성 (Tab/Enter)
|
|
451
|
-
- ARIA 레이블 (스크린 리더)
|
|
452
|
-
- 색상 대비 4.5:1
|
|
453
|
-
- 폼 레이블 필수`)
|
|
454
|
-
|
|
455
|
-
Task(subagent_type="analyst", model="sonnet",
|
|
456
|
-
prompt=`공공데이터 API 연동 분석
|
|
457
|
-
- 행정안전부 API
|
|
458
|
-
- 데이터 형식 (JSON/XML)
|
|
459
|
-
- 인증 방식 (API 키)`)
|
|
460
|
-
|
|
461
|
-
// Phase 3: 법규 검증
|
|
462
|
-
Task(subagent_type="analyst", model="sonnet",
|
|
463
|
-
prompt=`개인정보보호법 검증
|
|
464
|
-
- 수집 항목 최소화
|
|
465
|
-
- 동의 절차 명시
|
|
466
|
-
- 개인정보 처리방침`)
|
|
467
|
-
```
|
|
468
|
-
|
|
469
|
-
---
|
|
470
|
-
|
|
471
|
-
#### 시나리오 4: 커뮤니티 (네이버 카페/디시인사이드 스타일)
|
|
472
|
-
|
|
473
|
-
**목표:** 게시판 + 댓글 시스템
|
|
474
|
-
|
|
475
|
-
```typescript
|
|
476
|
-
// Phase 1: UI 병렬 구현
|
|
477
|
-
Task(subagent_type="designer", model="sonnet",
|
|
478
|
-
prompt=`게시판 리스트
|
|
479
|
-
- 말머리 (공지/일반/질문)
|
|
480
|
-
- 제목/작성자/날짜/조회수
|
|
481
|
-
- 페이지네이션`)
|
|
482
|
-
|
|
483
|
-
Task(subagent_type="designer", model="sonnet",
|
|
484
|
-
prompt=`게시글 상세
|
|
485
|
-
- 제목/작성자/날짜
|
|
486
|
-
- 본문 (Markdown 지원)
|
|
487
|
-
- 좋아요/신고 버튼`)
|
|
488
|
-
|
|
489
|
-
Task(subagent_type="designer", model="sonnet",
|
|
490
|
-
prompt=`댓글 시스템
|
|
491
|
-
- 대댓글 (nested)
|
|
492
|
-
- 좋아요/신고
|
|
493
|
-
- 실시간 업데이트`)
|
|
494
|
-
|
|
495
|
-
// Phase 2: API 병렬 구현
|
|
496
|
-
Task(subagent_type="implementation-executor", model="sonnet",
|
|
497
|
-
prompt=`게시글 CRUD API
|
|
498
|
-
- GET /posts: 목록
|
|
499
|
-
- POST /posts: 작성 (인증 필수)
|
|
500
|
-
- PUT /posts/:id: 수정
|
|
501
|
-
- DELETE /posts/:id: 삭제`)
|
|
502
|
-
|
|
503
|
-
Task(subagent_type="implementation-executor", model="sonnet",
|
|
504
|
-
prompt=`댓글 CRUD API
|
|
505
|
-
- GET /comments: 조회
|
|
506
|
-
- POST /comments: 작성
|
|
507
|
-
- nested 구조 (parent_id)`)
|
|
508
|
-
|
|
509
|
-
// Phase 3: 컨텐츠 정책 검증
|
|
510
|
-
Task(subagent_type="analyst", model="sonnet",
|
|
511
|
-
prompt=`정보통신망법 요구사항
|
|
512
|
-
- 불법 정보 신고 절차
|
|
513
|
-
- 임시조치 (게시 중단)
|
|
514
|
-
- 명예훼손 대응`)
|
|
515
|
-
```
|
|
516
|
-
|
|
517
|
-
---
|
|
518
|
-
|
|
519
|
-
### 체크리스트
|
|
520
|
-
|
|
521
|
-
#### 작업 전 확인
|
|
522
|
-
|
|
523
|
-
**병렬 실행 가능:**
|
|
524
|
-
- [ ] 본인인증 + 결제 + 주소입력 (독립 컴포넌트)
|
|
525
|
-
- [ ] 모바일 UI + 데스크톱 UI (독립 화면)
|
|
526
|
-
- [ ] 개인정보보호법 + 전자금융거래법 + 웹접근성 (독립 검증)
|
|
527
|
-
- [ ] 여러 페이지/컴포넌트 동시 작업
|
|
528
|
-
|
|
529
|
-
**순차 실행 필요:**
|
|
530
|
-
- [ ] API 구현 → 검증 (의존성)
|
|
531
|
-
- [ ] 디자인 시스템 설계 → 컴포넌트 구현 (순서)
|
|
532
|
-
|
|
533
|
-
**한국 서비스 필수 체크:**
|
|
534
|
-
- [ ] 날짜 형식 (YYYY년 MM월 DD일)
|
|
535
|
-
- [ ] 통화 형식 (15,000원)
|
|
536
|
-
- [ ] 전화번호 형식 (010-XXXX-XXXX)
|
|
537
|
-
- [ ] 주소 입력 (Daum Postcode API)
|
|
538
|
-
- [ ] 본인인증 (NICE/KCB)
|
|
539
|
-
- [ ] 결제 (토스페이먼츠/KG이니시스)
|
|
540
|
-
- [ ] 법규 준수 (개인정보보호법/전자금융거래법/웹접근성)
|
|
541
|
-
|
|
542
|
-
**모델 선택:**
|
|
543
|
-
- [ ] 간단한 UI → designer (sonnet)
|
|
544
|
-
- [ ] 복잡한 디자인 시스템 → designer (opus)
|
|
545
|
-
- [ ] 법규 분석 → analyst (sonnet)
|
|
546
|
-
- [ ] 보안 검토 → code-reviewer (opus)
|
|
547
|
-
- [ ] API 구현 → implementation-executor (sonnet)
|
|
548
|
-
|
|
549
|
-
**적극적으로 병렬 에이전트 활용. 한국 서비스 특화 패턴 적용.**
|
|
550
|
-
|
|
551
|
-
</parallel_agent_execution>
|
|
552
|
-
|
|
553
|
-
---
|
|
554
|
-
|
|
555
|
-
<core_principles>
|
|
556
|
-
|
|
557
|
-
## 디자인 철학
|
|
558
|
-
|
|
559
|
-
| 원칙 | 적용 |
|
|
560
|
-
|------|------|
|
|
561
|
-
| **정보 밀도** | 한 화면에 핵심만, 상세는 펼침/모달 |
|
|
562
|
-
| **미니멀리즘** | 불필요한 장식 제거, 미세한 보더로 구분 |
|
|
563
|
-
| **부드러운 곡선** | border-radius 8-16px |
|
|
564
|
-
| **UX 라이팅** | "입력하세요" → "어떤 이름으로 불러드릴까요?" |
|
|
565
|
-
|
|
566
|
-
**상세:** [references/design-philosophy.md](references/design-philosophy.md)
|
|
567
|
-
|
|
568
|
-
</core_principles>
|
|
569
|
-
|
|
570
|
-
---
|
|
571
|
-
|
|
572
|
-
<layout_patterns>
|
|
573
|
-
|
|
574
|
-
## 레이아웃
|
|
575
|
-
|
|
576
|
-
### 컨테이너 너비
|
|
577
|
-
|
|
578
|
-
```tsx
|
|
579
|
-
{/* 대시보드 - 1200px */}
|
|
580
|
-
<div className="max-w-7xl mx-auto px-4 md:px-6 lg:px-8">
|
|
581
|
-
|
|
582
|
-
{/* 콘텐츠 - 800px */}
|
|
583
|
-
<div className="max-w-3xl mx-auto px-4 md:px-6">
|
|
584
|
-
|
|
585
|
-
{/* 폼/설정 - 480px */}
|
|
586
|
-
<div className="max-w-md mx-auto px-4">
|
|
587
|
-
```
|
|
588
|
-
|
|
589
|
-
### 여백
|
|
590
|
-
|
|
591
|
-
```tsx
|
|
592
|
-
{/* 섹션 간 */}
|
|
593
|
-
<div className="space-y-8 md:space-y-12">
|
|
594
|
-
|
|
595
|
-
{/* 카드 내부 */}
|
|
596
|
-
<div className="p-4 md:p-6">
|
|
597
|
-
```
|
|
598
|
-
|
|
599
|
-
</layout_patterns>
|
|
600
|
-
|
|
601
|
-
---
|
|
602
|
-
|
|
603
|
-
<component_patterns>
|
|
604
|
-
|
|
605
|
-
## 컴포넌트
|
|
606
|
-
|
|
607
|
-
### 버튼
|
|
608
|
-
|
|
609
|
-
```tsx
|
|
610
|
-
{/* Primary */}
|
|
611
|
-
<button className="h-11 px-4 rounded-lg bg-blue-500 hover:bg-blue-600 text-white font-medium transition-colors">
|
|
612
|
-
저장하기
|
|
613
|
-
</button>
|
|
614
|
-
|
|
615
|
-
{/* Secondary */}
|
|
616
|
-
<button className="h-11 px-4 rounded-lg border border-gray-300 hover:bg-gray-50 font-medium transition-colors">
|
|
617
|
-
취소
|
|
618
|
-
</button>
|
|
619
|
-
|
|
620
|
-
{/* Ghost */}
|
|
621
|
-
<button className="h-11 px-4 rounded-lg hover:bg-gray-100 font-medium transition-colors">
|
|
622
|
-
더보기
|
|
623
|
-
</button>
|
|
624
|
-
```
|
|
625
|
-
|
|
626
|
-
**크기:** Small h-8 px-3 | Medium h-11 px-4 | Large h-12 px-5
|
|
627
|
-
|
|
628
|
-
### 카드
|
|
629
|
-
|
|
630
|
-
```tsx
|
|
631
|
-
<div className="p-4 md:p-6 border border-gray-200 rounded-xl bg-white">
|
|
632
|
-
{/* 헤더 */}
|
|
633
|
-
<div className="flex items-center justify-between mb-4">
|
|
634
|
-
<h3 className="text-lg font-semibold">제목</h3>
|
|
635
|
-
<button className="text-gray-500">•••</button>
|
|
636
|
-
</div>
|
|
637
|
-
|
|
638
|
-
{/* 바디 */}
|
|
639
|
-
<div className="space-y-3">
|
|
640
|
-
<p className="text-sm text-gray-700 leading-relaxed">콘텐츠</p>
|
|
641
|
-
</div>
|
|
642
|
-
|
|
643
|
-
{/* 푸터 */}
|
|
644
|
-
<div className="flex items-center justify-between mt-4 pt-4 border-t">
|
|
645
|
-
<span className="text-sm text-gray-500">2시간 전</span>
|
|
646
|
-
<button className="text-sm text-blue-500 font-medium">자세히</button>
|
|
647
|
-
</div>
|
|
648
|
-
</div>
|
|
649
|
-
```
|
|
650
|
-
|
|
651
|
-
### 리스트 아이템
|
|
652
|
-
|
|
653
|
-
```tsx
|
|
654
|
-
<div className="flex items-center gap-3 p-4 hover:bg-gray-50 transition-colors cursor-pointer">
|
|
655
|
-
{/* 좌측: 썸네일 */}
|
|
656
|
-
<div className="w-12 h-12 rounded-lg bg-gray-100 flex-shrink-0" />
|
|
657
|
-
|
|
658
|
-
{/* 중앙: 제목+설명 */}
|
|
659
|
-
<div className="flex-1 min-w-0">
|
|
660
|
-
<div className="font-semibold text-sm truncate">제목</div>
|
|
661
|
-
<div className="text-[13px] text-gray-600 truncate">설명</div>
|
|
662
|
-
</div>
|
|
663
|
-
|
|
664
|
-
{/* 우측: 숫자/상태 */}
|
|
665
|
-
<div className="flex items-center gap-2 flex-shrink-0">
|
|
666
|
-
<span className="text-sm font-semibold">15,000원</span>
|
|
667
|
-
<svg className="w-5 h-5 text-gray-400" />
|
|
668
|
-
</div>
|
|
669
|
-
</div>
|
|
670
|
-
```
|
|
671
|
-
|
|
672
|
-
### 입력 필드
|
|
673
|
-
|
|
674
|
-
```tsx
|
|
675
|
-
<div className="space-y-2">
|
|
676
|
-
<label className="text-sm font-medium text-gray-900">
|
|
677
|
-
이메일 <span className="text-red-500">*</span>
|
|
678
|
-
</label>
|
|
679
|
-
<input
|
|
680
|
-
type="email"
|
|
681
|
-
className="w-full h-11 px-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-shadow"
|
|
682
|
-
placeholder="example@email.com"
|
|
683
|
-
/>
|
|
684
|
-
</div>
|
|
685
|
-
```
|
|
686
|
-
|
|
687
|
-
### 모달
|
|
688
|
-
|
|
689
|
-
```tsx
|
|
690
|
-
<div className="fixed inset-0 bg-black/50 flex items-center justify-center p-4 z-50">
|
|
691
|
-
<div className="bg-white rounded-2xl max-w-md w-full max-h-[90vh] overflow-auto">
|
|
692
|
-
<div className="flex items-center justify-between p-6 border-b">
|
|
693
|
-
<h2 className="text-xl font-semibold">모달 제목</h2>
|
|
694
|
-
<button className="w-8 h-8 flex items-center justify-center rounded-lg hover:bg-gray-100">✕</button>
|
|
695
|
-
</div>
|
|
696
|
-
<div className="p-6"><p className="text-sm text-gray-700 leading-relaxed">내용</p></div>
|
|
697
|
-
<div className="flex gap-2 justify-end p-6 border-t">
|
|
698
|
-
<button className="h-11 px-4 rounded-lg border">취소</button>
|
|
699
|
-
<button className="h-11 px-4 rounded-lg bg-blue-500 text-white">확인</button>
|
|
700
|
-
</div>
|
|
701
|
-
</div>
|
|
702
|
-
</div>
|
|
703
|
-
```
|
|
704
|
-
|
|
705
|
-
### 탭
|
|
706
|
-
|
|
707
|
-
```tsx
|
|
708
|
-
{/* 밑줄 스타일 */}
|
|
709
|
-
<div className="border-b border-gray-200">
|
|
710
|
-
<div className="flex gap-8">
|
|
711
|
-
<button className="py-3 text-sm font-medium text-blue-500 border-b-2 border-blue-500">전체</button>
|
|
712
|
-
<button className="py-3 text-sm font-medium text-gray-600 hover:text-gray-900">진행중</button>
|
|
713
|
-
</div>
|
|
714
|
-
</div>
|
|
715
|
-
|
|
716
|
-
{/* 세그먼트 */}
|
|
717
|
-
<div className="inline-flex p-1 bg-gray-100 rounded-lg gap-1">
|
|
718
|
-
<button className="px-4 py-2 rounded-md bg-white shadow-sm text-sm font-medium">전체</button>
|
|
719
|
-
<button className="px-4 py-2 rounded-md text-sm font-medium text-gray-600">진행중</button>
|
|
720
|
-
</div>
|
|
721
|
-
```
|
|
722
|
-
|
|
723
|
-
</component_patterns>
|
|
724
|
-
|
|
725
|
-
---
|
|
726
|
-
|
|
727
|
-
<color_system>
|
|
728
|
-
|
|
729
|
-
## 색상 시스템
|
|
730
|
-
|
|
731
|
-
| 색상 | 용도 | 비율 |
|
|
732
|
-
|------|------|------|
|
|
733
|
-
| **Primary** | 버튼, 링크, 활성 상태 | 10% |
|
|
734
|
-
| **Secondary** | 필터, 칩, 보조 버튼 | 30% |
|
|
735
|
-
| **Background** | 배경 | 60% |
|
|
736
|
-
| **Semantic** | Success/Error/Warning/Info | 필요시 |
|
|
737
|
-
|
|
738
|
-
```tsx
|
|
739
|
-
{/* 60-30-10 규칙 적용 */}
|
|
740
|
-
<button className="bg-primary-500 hover:bg-primary-600 text-white">주요 액션</button>
|
|
741
|
-
<button className="bg-secondary-200 text-secondary-900">보조 액션</button>
|
|
742
|
-
```
|
|
743
|
-
|
|
744
|
-
**WCAG AA:** 일반 텍스트 4.5:1 | 큰 텍스트 3:1
|
|
745
|
-
|
|
746
|
-
**상세:** [references/color-system.md](references/color-system.md)
|
|
747
|
-
|
|
748
|
-
</color_system>
|
|
749
|
-
|
|
750
|
-
---
|
|
751
|
-
|
|
752
|
-
<icon_system>
|
|
753
|
-
|
|
754
|
-
## 아이콘
|
|
755
|
-
|
|
756
|
-
| 크기 | 용도 | 터치 영역 |
|
|
757
|
-
|------|------|----------|
|
|
758
|
-
| 16px, 20px | 텍스트와 함께 | - |
|
|
759
|
-
| 24px | 기본 시스템 아이콘 | 44-48px |
|
|
760
|
-
| 32-48px | 강조 | 그대로 |
|
|
761
|
-
|
|
762
|
-
```tsx
|
|
763
|
-
{/* 충분한 터치 타겟 */}
|
|
764
|
-
<button className="w-12 h-12 flex items-center justify-center rounded-lg">
|
|
765
|
-
<svg className="w-6 h-6" />
|
|
766
|
-
</button>
|
|
767
|
-
|
|
768
|
-
{/* 비활성: Outline | 활성: Filled */}
|
|
769
|
-
<svg className="w-6 h-6 stroke-current text-gray-600" fill="none" />
|
|
770
|
-
<svg className="w-6 h-6 fill-current text-primary-500" />
|
|
771
|
-
```
|
|
772
|
-
|
|
773
|
-
**상세:** [references/icon-guide.md](references/icon-guide.md)
|
|
774
|
-
|
|
775
|
-
</icon_system>
|
|
776
|
-
|
|
777
|
-
---
|
|
778
|
-
|
|
779
|
-
<typography>
|
|
780
|
-
|
|
781
|
-
## 타이포그래피
|
|
782
|
-
|
|
783
|
-
```tsx
|
|
784
|
-
{/* 페이지 제목 */}
|
|
785
|
-
<h1 className="text-3xl font-bold tracking-tight leading-tight">대시보드</h1>
|
|
786
|
-
|
|
787
|
-
{/* 섹션 제목 */}
|
|
788
|
-
<h2 className="text-xl font-semibold tracking-tight">최근 활동</h2>
|
|
789
|
-
|
|
790
|
-
{/* 본문 */}
|
|
791
|
-
<p className="text-sm font-normal leading-relaxed text-gray-700">본문</p>
|
|
792
|
-
|
|
793
|
-
{/* 부가 정보 */}
|
|
794
|
-
<span className="text-[13px] text-gray-500">2시간 전</span>
|
|
795
|
-
```
|
|
796
|
-
|
|
797
|
-
**상세:** [references/typography.md](references/typography.md)
|
|
798
|
-
|
|
799
|
-
</typography>
|
|
800
|
-
|
|
801
|
-
---
|
|
802
|
-
|
|
803
|
-
<responsive_patterns>
|
|
804
|
-
|
|
805
|
-
## 반응형
|
|
806
|
-
|
|
807
|
-
### 그리드
|
|
808
|
-
|
|
809
|
-
```tsx
|
|
810
|
-
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4">
|
|
811
|
-
{items.map(item => <Card key={item.id} {...item} />)}
|
|
812
|
-
</div>
|
|
813
|
-
```
|
|
814
|
-
|
|
815
|
-
### 네비게이션
|
|
816
|
-
|
|
817
|
-
```tsx
|
|
818
|
-
{/* 데스크톱: 사이드바 */}
|
|
819
|
-
<aside className="hidden lg:block w-60" />
|
|
820
|
-
|
|
821
|
-
{/* 모바일: 하단 탭바 */}
|
|
822
|
-
<nav className="lg:hidden fixed bottom-0 w-full h-14 border-t bg-white" />
|
|
823
|
-
```
|
|
824
|
-
|
|
825
|
-
**상세:** [references/responsive-patterns.md](references/responsive-patterns.md)
|
|
826
|
-
|
|
827
|
-
</responsive_patterns>
|
|
828
|
-
|
|
829
|
-
---
|
|
830
|
-
|
|
831
|
-
<service_patterns>
|
|
832
|
-
|
|
833
|
-
## 주요 서비스 패턴
|
|
834
|
-
|
|
835
|
-
| 서비스 | 색상 | 특징 |
|
|
836
|
-
|--------|------|------|
|
|
837
|
-
| **토스** | Blue #3182F6 | 신뢰감, 카드 중심, "어떤 이름으로 불러드릴까요?" |
|
|
838
|
-
| **카카오** | Yellow #FEE500 | 친근함, 말풍선 모티브, radius 12px |
|
|
839
|
-
| **배민** | Teal #2AC1BC | 감성, 손글씨, 일러스트 |
|
|
840
|
-
|
|
841
|
-
**상세:** [references/service-patterns.md](references/service-patterns.md)
|
|
842
|
-
|
|
843
|
-
</service_patterns>
|
|
844
|
-
|
|
845
|
-
---
|
|
846
|
-
|
|
847
|
-
<accessibility_and_states>
|
|
848
|
-
|
|
849
|
-
## 접근성 & 상태
|
|
850
|
-
|
|
851
|
-
### 접근성 필수
|
|
852
|
-
|
|
853
|
-
- 명암 대비 4.5:1 (WCAG AA)
|
|
854
|
-
- 키보드 네비게이션
|
|
855
|
-
- 색상만으로 정보 전달 금지
|
|
856
|
-
- 스크린 리더 호환
|
|
857
|
-
|
|
858
|
-
### 상태 패턴
|
|
859
|
-
|
|
860
|
-
```tsx
|
|
861
|
-
{/* 로딩 */}
|
|
862
|
-
<div className="animate-pulse space-y-3">
|
|
863
|
-
<div className="h-4 bg-gray-200 rounded w-3/4" />
|
|
864
|
-
</div>
|
|
865
|
-
|
|
866
|
-
{/* 에러 */}
|
|
867
|
-
<div className="text-red-600 flex items-center gap-2">
|
|
868
|
-
<svg className="w-5 h-5" />
|
|
869
|
-
<span>오류가 발생했습니다</span>
|
|
870
|
-
</div>
|
|
871
|
-
|
|
872
|
-
{/* 빈 상태 */}
|
|
873
|
-
<div className="py-12 text-center">
|
|
874
|
-
<div className="w-20 h-20 mx-auto mb-4 rounded-full bg-gray-100 flex items-center justify-center">
|
|
875
|
-
<svg className="w-10 h-10 text-gray-400" />
|
|
876
|
-
</div>
|
|
877
|
-
<h3 className="font-semibold mb-1">아직 내용이 없어요</h3>
|
|
878
|
-
<p className="text-sm text-gray-600">첫 번째 항목을 추가해보세요</p>
|
|
879
|
-
</div>
|
|
880
|
-
```
|
|
881
|
-
|
|
882
|
-
**상세:**
|
|
883
|
-
- [references/accessibility.md](references/accessibility.md)
|
|
884
|
-
- [references/micro-interactions.md](references/micro-interactions.md)
|
|
885
|
-
- [references/state-patterns.md](references/state-patterns.md)
|
|
886
|
-
|
|
887
|
-
</accessibility_and_states>
|
|
888
|
-
|
|
889
|
-
---
|
|
890
|
-
|
|
891
|
-
<references>
|
|
892
|
-
|
|
893
|
-
## 상세 문서
|
|
894
|
-
|
|
895
|
-
| 문서 | 내용 |
|
|
896
|
-
|------|------|
|
|
897
|
-
| [design-philosophy.md](references/design-philosophy.md) | 디자인 철학, 피해야 할 것 |
|
|
898
|
-
| [color-system.md](references/color-system.md) | Primary/Secondary/Semantic, WCAG, 서비스별 색상 |
|
|
899
|
-
| [icon-guide.md](references/icon-guide.md) | 크기, 터치 타겟, 스타일, 접근성 |
|
|
900
|
-
| [typography.md](references/typography.md) | 폰트, 크기, 웨이트, 한글 특징 |
|
|
901
|
-
| [service-patterns.md](references/service-patterns.md) | 토스/카카오/배민/플렉스/당근 분석 |
|
|
902
|
-
| [responsive-patterns.md](references/responsive-patterns.md) | 브레이크포인트, 그리드, 네비게이션 변환 |
|
|
903
|
-
| [accessibility.md](references/accessibility.md) | WCAG/KWCAG, 명암 대비, ARIA |
|
|
904
|
-
| [micro-interactions.md](references/micro-interactions.md) | 버튼/인풋/카드 인터랙션, 애니메이션 |
|
|
905
|
-
| [state-patterns.md](references/state-patterns.md) | 로딩/에러/빈 상태/성공 패턴 |
|
|
906
|
-
| [checklist.md](references/checklist.md) | 화면별 체크리스트 |
|
|
907
|
-
|
|
908
|
-
</references>
|
|
909
|
-
|
|
910
|
-
---
|
|
911
|
-
|
|
912
|
-
<prompt_examples>
|
|
913
|
-
|
|
914
|
-
## 프롬프트 예시
|
|
915
|
-
|
|
916
|
-
### 대시보드
|
|
917
|
-
|
|
918
|
-
```
|
|
919
|
-
대시보드 페이지 만들어줘.
|
|
920
|
-
|
|
921
|
-
레이아웃:
|
|
922
|
-
- 데스크톱: 좌측 사이드바(240px) + 메인(max-w-7xl)
|
|
923
|
-
- 모바일: 하단 탭바로 전환
|
|
924
|
-
- 반응형 패딩 (px-4 md:px-6 lg:px-8)
|
|
925
|
-
|
|
926
|
-
구성:
|
|
927
|
-
- 상단 인사말 + 날짜
|
|
928
|
-
- 통계 카드 4개 (grid-cols-1 md:grid-cols-2 lg:grid-cols-4)
|
|
929
|
-
- 최근 활동 리스트
|
|
930
|
-
- 빠른 액션 버튼
|
|
931
|
-
|
|
932
|
-
스타일:
|
|
933
|
-
- 한국형 SaaS (토스/플렉스)
|
|
934
|
-
- 카드: border + rounded-xl, 그림자 최소
|
|
935
|
-
- 숫자: font-bold + text-2xl
|
|
936
|
-
```
|
|
937
|
-
|
|
938
|
-
### 설정 화면
|
|
939
|
-
|
|
940
|
-
```
|
|
941
|
-
설정 페이지 만들어줘.
|
|
942
|
-
|
|
943
|
-
레이아웃:
|
|
944
|
-
- max-w-md mx-auto
|
|
945
|
-
- 섹션별 space-y-8
|
|
946
|
-
|
|
947
|
-
구성:
|
|
948
|
-
- 프로필: 아바타 + 이름 + 이메일
|
|
949
|
-
- 알림: 토글 스위치 (h-11 터치 영역)
|
|
950
|
-
- 계정: 비밀번호 변경, 로그아웃
|
|
951
|
-
- 위험: 계정 삭제 (빨간색)
|
|
952
|
-
|
|
953
|
-
스타일:
|
|
954
|
-
- 각 항목: flex justify-between items-center
|
|
955
|
-
- 레이블: text-sm font-medium
|
|
956
|
-
- 섹션 제목: text-xs text-gray-500 uppercase
|
|
957
|
-
```
|
|
958
|
-
|
|
959
|
-
### 리스트 화면
|
|
960
|
-
|
|
961
|
-
```
|
|
962
|
-
사용자 목록 만들어줘.
|
|
963
|
-
|
|
964
|
-
레이아웃:
|
|
965
|
-
- 데스크톱: 테이블
|
|
966
|
-
- 모바일: 카드 리스트
|
|
967
|
-
|
|
968
|
-
구성:
|
|
969
|
-
- 상단: 검색바 + 필터 + 추가 버튼
|
|
970
|
-
- 테이블: 이름, 이메일, 가입일, 상태
|
|
971
|
-
- 페이지네이션
|
|
972
|
-
|
|
973
|
-
스타일:
|
|
974
|
-
- 헤더: bg-gray-50
|
|
975
|
-
- 행 호버: hover:bg-gray-50
|
|
976
|
-
- 세로 구분선 없음
|
|
977
|
-
- 액션: 더보기 메뉴
|
|
978
|
-
```
|
|
979
|
-
|
|
980
|
-
</prompt_examples>
|