skillby cna-bootcamp

uiux-design

유저스토리를 기반으로 사용자 인터페이스와 경험을 디자인할 때 상세한 UI/UX 디자인 명세를 작성합니다.

Installs: 0
Used in: 1 repos
Updated: 2d ago
$npx ai-builder add skill cna-bootcamp/16-uiux-design

Installs to .claude/skills/16-uiux-design/

# UI/UX 디자인

## 목적

유저스토리를 기반으로 상세한 UI/UX 디자인 명세를 작성합니다.

## 사용 시점

- 유저스토리 작성이 완료된 후
- 프로토타입 개발 전
- 디자인 시스템을 정의해야 할 때
- 사용자가 "UI 디자인", "UX", "와이어프레임"을 언급할 때

## 필수 입력
- 유저스토리: `design/userstory.md` (user-stories 결과)
- 선정된 솔루션: `think/핵심솔루션.md` (solution-selection 결과)

## 디자인 명세 프레임워크

### 1. 디자인 원칙

#### 핵심 원칙 (5개)
1. **[원칙 1]**: [설명]
2. **[원칙 2]**: [설명]
3. **[원칙 3]**: [설명]
4. **[원칙 4]**: [설명]
5. **[원칙 5]**: [설명]

#### 디자인 언어
- **톤 앤 매너**: [예: 친근하고 직관적]
- **브랜드 키워드**: [3-5개 키워드]

### 2. 정보 아키텍처

#### 사이트맵
```
홈
├── 기능 A
│   ├── 하위기능 A-1
│   └── 하위기능 A-2
├── 기능 B
│   ├── 하위기능 B-1
│   └── 하위기능 B-2
├── 마이페이지
│   ├── 프로필
│   └── 설정
└── 고객지원
```

#### 네비게이션 구조
- **주 네비게이션**: 메인 메뉴 항목
- **부 네비게이션**: 서브 메뉴 항목
- **푸터 네비게이션**: 푸터 링크

### 3. 사용자 플로우

각 주요 기능에 대해:

#### 플로우 1: [기능 플로우]
```
시작
 ↓
[화면 1: 랜딩] → [화면 2: 선택]
 ↓                ↓
[화면 3: 입력] ← [화면 4: 확인]
 ↓
완료
```

**플로우 설명**:
1. 단계 1: [설명]
2. 단계 2: [설명]
3. 단계 3: [설명]

### 4. 와이어프레임

각 주요 화면에 대해 (최소 5개):

#### 화면 1: 홈 화면
```
+----------------------------------+
|  [로고]    [메뉴] [메뉴] [메뉴]     |
+----------------------------------+
|                                  |
|     [히어로 섹션]                 |
|     - 메인 메시지                 |
|     - CTA 버튼                   |
|                                  |
+----------------------------------+
|  [기능 1]   [기능 2]   [기능 3]   |
|   설명      설명       설명       |
+----------------------------------+
|                                  |
|     [메인 컨텐츠 영역]            |
|                                  |
+----------------------------------+
|  푸터                            |
+----------------------------------+
```

**핵심 요소**:
- 헤더: [설명]
- 히어로 섹션: [설명]
- 컨텐츠 영역: [설명]
- CTA: [설명]

### 5. 컴포넌트 라이브러리

#### 버튼
- Primary Button
- Secondary Button
- Text Button

#### 폼 요소
- Input Field
- Dropdown
- Checkbox / Radio
- Date Picker
- File Upload

#### 카드
- Content Card
- Product Card
- User Card

#### 네비게이션
- Top Navigation Bar
- Sidebar
- Breadcrumb
- Pagination

#### 피드백
- Toast / Snackbar
- Modal / Dialog
- Alert / Error Messages
- Loading Spinner

### 6. 스타일 가이드

#### 컬러 팔레트
```
Primary Color: #[HEX] - 메인 브랜드 컬러
Secondary Color: #[HEX] - 보조 컬러
Accent Color: #[HEX] - 강조 컬러

텍스트 컬러:
- Primary Text: #[HEX]
- Secondary Text: #[HEX]
- Disabled Text: #[HEX]

배경:
- Light: #[HEX]
- Dark: #[HEX]

상태 컬러:
- Success: #[HEX]
- Warning: #[HEX]
- Error: #[HEX]
- Info: #[HEX]
```

#### 타이포그래피
```
Font Family: [폰트명]

제목:
- H1: [크기]px, [굵기], [행간]
- H2: [크기]px, [굵기], [행간]
- H3: [크기]px, [굵기], [행간]

본문:
- Body 1: [크기]px, [굵기], [행간]
- Body 2: [크기]px, [굵기], [행간]

Caption: [크기]px, [굵기], [행간]
```

#### 간격
```
XS: 4px
S: 8px
M: 16px
L: 24px
XL: 32px
XXL: 48px
```

#### 아이콘
- 아이콘 라이브러리: [예: Material Icons, Font Awesome]
- 크기: 16px, 24px, 32px

### 7. 반응형 디자인

#### 브레이크포인트
```
모바일: < 768px
태블릿: 768px - 1024px
데스크톱: > 1024px
```

#### 화면별 레이아웃
- **모바일**: 단일 컬럼, 햄버거 메뉴
- **태블릿**: 2단 컬럼, 사이드바
- **데스크톱**: 다단 컬럼, 전체 네비게이션

### 8. 인터랙션 디자인

#### 애니메이션
- Transition Duration: 300ms
- Easing: ease-in-out
- Hover Effects: [설명]
- Click Feedback: [설명]

#### 마이크로 인터랙션
1. 버튼 클릭: [효과]
2. 폼 입력: [효과]
3. 페이지 전환: [효과]
4. 로딩: [효과]

### 9. 접근성 (WCAG 2.1)

준수 체크리스트:
- [ ] 키보드 네비게이션 지원
- [ ] 스크린 리더 호환
- [ ] 색상 대비율 ≥ 4.5:1
- [ ] 이미지 대체 텍스트
- [ ] ARIA 레이블

### 10. 사용성 테스트 체크리스트
- [ ] 5초 테스트 (첫인상)
- [ ] 태스크 완료율
- [ ] 에러율
- [ ] 만족도 점수

### 11. 디자인 시스템 도구

권장 도구:
- **디자인**: Figma, Adobe XD
- **프로토타이핑**: Figma, InVision, Proto.io
- **협업**: Zeplin, Abstract
- **디자인 토큰**: Style Dictionary
- **컴포넌트 문서화**: Storybook

## 작성 형식

```markdown
# UI/UX 디자인 명세

## 디자인 원칙

### 핵심 원칙 (5개)
1. **{원칙명}**: {설명}
2. **{원칙명}**: {설명}
3. **{원칙명}**: {설명}
4. **{원칙명}**: {설명}
5. **{원칙명}**: {설명}

### 디자인 언어
- **톤 앤 매너**: {예: 친근하고 직관적}
- **브랜드 키워드**: {키워드1}, {키워드2}, {키워드3}

## 정보 아키텍처

### 사이트맵
\```
홈
├── {기능 A}
│   ├── {하위기능 A-1}
│   └── {하위기능 A-2}
├── {기능 B}
│   ├── {하위기능 B-1}
│   └── {하위기능 B-2}
└── {기능 C}
\```

### 네비게이션 구조
- **주 네비게이션**: {메뉴1}, {메뉴2}, {메뉴3}
- **부 네비게이션**: {서브메뉴 항목}
- **푸터 네비게이션**: {푸터 링크}

## 사용자 플로우

### 플로우 1: {기능명}

\```
시작
 ↓
[화면 1: {화면명}] → [화면 2: {화면명}]
 ↓                    ↓
[화면 3: {화면명}] ← [화면 4: {화면명}]
 ↓
완료
\```

**플로우 설명**:
1. **{화면명}**: {설명}
2. **{화면명}**: {설명}
3. **{화면명}**: {설명}

(다음 플로우 반복)

## 와이어프레임

### 화면 1: {화면명}

\```
+----------------------------------------+
|  [로고]     [메뉴] [메뉴] [메뉴]          |
+----------------------------------------+
|                                        |
|     [{영역명}]                          |
|     - {요소 1}                          |
|     - {요소 2}                          |
|                                        |
+----------------------------------------+
|  [{컴포넌트1}] [{컴포넌트2}] [{컴포넌트3}] |
+----------------------------------------+
|                                        |
|     [{메인 컨텐츠 영역}]                 |
|                                        |
+----------------------------------------+
|  {푸터}                                |
+----------------------------------------+
\```

**핵심 요소**:
- **{요소명}**: {설명}
- **{요소명}**: {설명}
- **{요소명}**: {설명}

(다음 화면 반복, 최소 5개)

## 컴포넌트 라이브러리

### 버튼
- **Primary Button**: {설명}
  - 크기: {크기}
  - 색상: {색상}
  - 사용: {사용 케이스}

- **Secondary Button**: {설명}
  - 크기: {크기}
  - 색상: {색상}
  - 사용: {사용 케이스}

### 폼 요소
- **Input Field**: {설명}
  - 타입: {text, email, password 등}
  - 상태: {default, focus, error, disabled}

- **Dropdown**: {설명}
  - 옵션 표시 방식: {설명}
  - 검색 기능: {유/무}

(모든 컴포넌트 반복)

## 스타일 가이드

### 컬러 팔레트
\```
Primary Color: #{HEX} - {설명}
Secondary Color: #{HEX} - {설명}
Accent Color: #{HEX} - {설명}

텍스트 컬러:
- Primary Text: #{HEX}
- Secondary Text: #{HEX}
- Disabled Text: #{HEX}

배경:
- Light: #{HEX}
- Dark: #{HEX}

상태 컬러:
- Success: #{HEX}
- Warning: #{HEX}
- Error: #{HEX}
- Info: #{HEX}
\```

### 타이포그래피
\```
Font Family: {폰트명}

제목:
- H1: {크기}px, {굵기}, {행간}
- H2: {크기}px, {굵기}, {행간}
- H3: {크기}px, {굵기}, {행간}

본문:
- Body 1: {크기}px, {굵기}, {행간}
- Body 2: {크기}px, {굵기}, {행간}

Caption: {크기}px, {굵기}, {행간}
\```

### 간격 시스템
\```
XS: 4px   - {사용 예시}
S:  8px   - {사용 예시}
M:  16px  - {사용 예시}
L:  24px  - {사용 예시}
XL: 32px  - {사용 예시}
XXL: 48px - {사용 예시}
\```

### 아이콘
- **아이콘 라이브러리**: {Material Icons, Font Awesome 등}
- **크기**: 16px, 24px, 32px
- **스타일**: {Filled, Outlined, Rounded 등}

## 반응형 디자인

### 브레이크포인트
\```
모바일: < 768px
태블릿: 768px - 1024px
데스크톱: > 1024px
\```

### 화면별 레이아웃 전략
- **모바일** (< 768px)
  - 레이아웃: 단일 컬럼
  - 네비게이션: 햄버거 메뉴
  - 터치 타겟: 최소 44x44px

- **태블릿** (768px - 1024px)
  - 레이아웃: 2단 컬럼
  - 네비게이션: 사이드바 또는 탭
  - 터치 타겟: 최소 44x44px

- **데스크톱** (> 1024px)
  - 레이아웃: 다단 컬럼
  - 네비게이션: 전체 메뉴바
  - 마우스/키보드 인터랙션

## 인터랙션 디자인

### 애니메이션 원칙
- **Duration**: 300ms (기본)
- **Easing**: ease-in-out
- **Hover Effects**: {효과 설명}
- **Click Feedback**: {효과 설명}

### 마이크로 인터랙션
1. **버튼 클릭**: {효과 설명}
2. **폼 입력**: {효과 설명}
3. **페이지 전환**: {효과 설명}
4. **로딩 상태**: {효과 설명}

## 접근성 (WCAG 2.1 AA)

### 준수 체크리스트
- [ ] 키보드 네비게이션 지원 (Tab, Enter, Space, Arrow keys)
- [ ] 스크린 리더 호환 (적절한 HTML 시맨틱 사용)
- [ ] 색상 대비율 ≥ 4.5:1 (텍스트), ≥ 3:1 (UI 컴포넌트)
- [ ] 이미지 대체 텍스트 (alt 속성)
- [ ] ARIA 레이블 (role, aria-label, aria-describedby)
- [ ] 폼 레이블 (label 요소)
- [ ] 포커스 인디케이터 (visible focus indicator)

## 사용성 테스트

### 테스트 체크리스트
- [ ] **5초 테스트**: 첫인상 평가
- [ ] **태스크 완료율**: 주요 태스크 완료 여부
- [ ] **에러율**: 사용 중 발생한 에러 빈도
- [ ] **만족도 점수**: SUS (System Usability Scale)
- [ ] **NPS (Net Promoter Score)**: 추천 의향

## 디자인 시스템 도구

### 권장 도구
- **디자인**: Figma, Adobe XD
- **프로토타이핑**: Figma, InVision, Proto.io
- **협업**: Zeplin, Abstract
- **디자인 토큰**: Style Dictionary
- **컴포넌트 문서화**: Storybook
```

## 디자인 가이드라인

- ASCII 아트 또는 텍스트 기반 와이어프레임 사용
- 최소 5개 이상의 주요 화면 와이어프레임 작성
- 모든 컴포넌트에 일관성 보장
- 모바일 우선 디자인
- 접근성 표준 준수
- 모든 디자인 결정 문서화
- 재사용 가능한 컴포넌트 패턴 생성
- 유저스토리와 직접 연결

## 유저스토리 연결 가이드

### Epic → 주요 화면
- 각 Epic을 주요 화면 그룹으로 변환
- 예시: "사용자 관리" Epic → 회원가입, 로그인, 프로필 화면

### User Story → 화면 플로우
- 각 User Story를 화면 플로우로 변환
- Acceptance Criteria를 화면 상태와 전환으로 표현

### 비기능적 요구사항 → 디자인 제약
- 성능 요구사항 → 로딩 전략, 최적화
- 접근성 요구사항 → WCAG 준수
- 반응형 요구사항 → 브레이크포인트, 레이아웃

## 결과 파일

- **UI/UX 디자인.md**: `design/uiux/uiux.md`
- **스타일 가이드.md**: `design/uiux/style-guide.md`

## 주의사항

- 최소 5개 이상 주요 화면 와이어프레임
- ASCII 아트로 명확히 시각화
- 컴포넌트 라이브러리 완전히 정의
- 스타일 가이드 구체적으로 (HEX 코드, px 단위)
- WCAG 2.1 AA 이상 준수
- 모바일 우선 접근
- 모든 인터랙션 정의
- 유저스토리와 일대일 매핑

## 다음 단계

UI/UX 디자인 완료 후:
1. 프로토타입 개발 (기술 스택, 구현)
2. 디자인 리뷰 및 피드백
3. 개발 핸드오프

Quick Install

$npx ai-builder add skill cna-bootcamp/16-uiux-design

Details

Type
skill
Slug
cna-bootcamp/16-uiux-design
Created
6d ago