| name | skill-115 |
| description | 유저스토리를 기반으로 사용자 인터페이스와 경험을 디자인할 때 상세한 UI/UX 디자인 명세를 작성합니다. |
UI/UX 디자인
목적
유저스토리를 기반으로 상세한 UI/UX 디자인 명세를 작성합니다.
사용 시점
- 유저스토리 작성이 완료된 후
- 프로토타입 개발 전
- 디자인 시스템을 정의해야 할 때
- 사용자가 "UI 디자인", "UX", "와이어프레임"을 언급할 때
필수 입력
- 유저스토리:
design/userstory.md (user-stories 결과)
- 선정된 솔루션:
think/핵심솔루션.md (solution-selection 결과)
디자인 명세 프레임워크
1. 디자인 원칙
핵심 원칙 (5개)
- [원칙 1]: [설명]
- [원칙 2]: [설명]
- [원칙 3]: [설명]
- [원칙 4]: [설명]
- [원칙 5]: [설명]
디자인 언어
- 톤 앤 매너: [예: 친근하고 직관적]
- 브랜드 키워드: [3-5개 키워드]
2. 정보 아키텍처
사이트맵
홈
├── 기능 A
│ ├── 하위기능 A-1
│ └── 하위기능 A-2
├── 기능 B
│ ├── 하위기능 B-1
│ └── 하위기능 B-2
├── 마이페이지
│ ├── 프로필
│ └── 설정
└── 고객지원
네비게이션 구조
- 주 네비게이션: 메인 메뉴 항목
- 부 네비게이션: 서브 메뉴 항목
- 푸터 네비게이션: 푸터 링크
3. 사용자 플로우
각 주요 기능에 대해:
플로우 1: [기능 플로우]
시작
↓
[화면 1: 랜딩] → [화면 2: 선택]
↓ ↓
[화면 3: 입력] ← [화면 4: 확인]
↓
완료
플로우 설명:
- 단계 1: [설명]
- 단계 2: [설명]
- 단계 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: [설명]
마이크로 인터랙션
- 버튼 클릭: [효과]
- 폼 입력: [효과]
- 페이지 전환: [효과]
- 로딩: [효과]
9. 접근성 (WCAG 2.1)
준수 체크리스트:
10. 사용성 테스트 체크리스트
11. 디자인 시스템 도구
권장 도구:
- 디자인: Figma, Adobe XD
- 프로토타이핑: Figma, InVision, Proto.io
- 협업: Zeplin, Abstract
- 디자인 토큰: Style Dictionary
- 컴포넌트 문서화: Storybook
작성 형식
# 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개)
: {설명}
크기: {크기}
색상: {색상}
사용: {사용 케이스}
: {설명}
크기: {크기}
색상: {색상}
사용: {사용 케이스}
: {설명}
타입: {text, email, password 등}
상태: {default, focus, error, disabled}
: {설명}
옵션 표시 방식: {설명}
검색 기능: {유/무}
(모든 컴포넌트 반복)
\
\
\
: {Material Icons, Font Awesome 등}
: 16px, 24px, 32px
: {Filled, Outlined, Rounded 등}
\
(< 768px)
레이아웃: 단일 컬럼
네비게이션: 햄버거 메뉴
터치 타겟: 최소 44x44px
(768px - 1024px)
레이아웃: 2단 컬럼
네비게이션: 사이드바 또는 탭
터치 타겟: 최소 44x44px
(> 1024px)
레이아웃: 다단 컬럼
네비게이션: 전체 메뉴바
마우스/키보드 인터랙션
: 300ms (기본)
: ease-in-out
: {효과 설명}
: {효과 설명}
: {효과 설명}
: {효과 설명}
: {효과 설명}
: {효과 설명}
[ ] 키보드 네비게이션 지원 (Tab, Enter, Space, Arrow keys)
[ ] 스크린 리더 호환 (적절한 HTML 시맨틱 사용)
[ ] 색상 대비율 ≥ 4.5:1 (텍스트), ≥ 3:1 (UI 컴포넌트)
[ ] 이미지 대체 텍스트 (alt 속성)
[ ] ARIA 레이블 (role, aria-label, aria-describedby)
[ ] 폼 레이블 (label 요소)
[ ] 포커스 인디케이터 (visible focus indicator)
[ ] : 첫인상 평가
[ ] : 주요 태스크 완료 여부
[ ] : 사용 중 발생한 에러 빈도
[ ] : SUS (System Usability Scale)
[ ] : 추천 의향
: 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 디자인 완료 후:
- 프로토타입 개발 (기술 스택, 구현)
- 디자인 리뷰 및 피드백
- 개발 핸드오프