docs: 문서 작성 표준 가이드 추가

프로젝트 전체 문서 작성 규칙 및 템플릿 정의

## 주요 내용
- 문서 작성 5대 원칙 (명확성, 일관성, 완전성, 접근성, 유지보수성)
- 문서 구조 표준 (필수 섹션, 섹션 순서)
- 문서 유형별 가이드 (배포, 기능 명세, API, 트러블슈팅)
- 작성 규칙 (마크다운 스타일, 명명 규칙, 코드 예시, 표, 다이어그램)
- 예시 템플릿 (배포 가이드, API 문서)
- 문서 검토 체크리스트

## 문서 유형별 표준 구조

### 배포/설치 가이드:
1. 문서 개요 → 2. 목차 → 3. 시스템 개요 → 4. 배포 전 확인사항
→ 5. 배포 절차 → 6. 기능 명세 → 7. API 명세 → 8. 프론트엔드 구현
→ 9. 테스트 가이드 → 10. 문제 해결 → 11. 변경 이력

### API 문서:
1. 문서 개요 → 2. 목차 → 3. API 개요 → 4. 인증 방식
→ 5. 엔드포인트 목록 → 6. 엔드포인트 상세 → 7. 에러 코드
→ 8. 예시 코드 → 9. 변경 이력

## 적용 대상
- 모든 신규 문서는 이 가이드를 따름
- 기존 문서는 점진적으로 표준화

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Hyungi Ahn
2026-01-26 10:16:47 +09:00
parent 94bccf3b67
commit 4ee07bc95c

View File

@@ -0,0 +1,997 @@
# 문서 작성 가이드
## 📋 문서 개요
**목적**: 프로젝트 문서 작성 표준 및 규칙 정의
**대상**: 개발자, 시스템 관리자
**버전**: v1.0.0
**최종 수정일**: 2026-01-26
---
## 📑 목차
1. [문서 작성 원칙](#문서-작성-원칙)
2. [문서 구조 표준](#문서-구조-표준)
3. [문서 유형별 가이드](#문서-유형별-가이드)
4. [작성 규칙](#작성-규칙)
5. [예시 템플릿](#예시-템플릿)
---
## 문서 작성 원칙
### 1.1 핵심 원칙
**명확성 (Clarity)**
- 독자가 한 번에 이해할 수 있도록 작성
- 전문 용어는 최초 사용 시 설명 추가
- 모호한 표현 금지
**일관성 (Consistency)**
- 프로젝트 전체에서 동일한 용어 사용
- 문서 구조를 표준화하여 예측 가능하게
- 날짜 형식, 버전 표기 등 통일
**완전성 (Completeness)**
- 배포/설치/사용에 필요한 모든 정보 포함
- "뻔하다"고 생각되는 내용도 명시
- 전제 조건, 환경 요구사항 명확히
**접근성 (Accessibility)**
- 목차를 통한 빠른 탐색 가능
- 섹션별 명확한 제목
- 코드 예시, 다이어그램 활용
**유지보수성 (Maintainability)**
- 버전 관리 및 변경 이력 기록
- 작성일, 수정일 명시
- 관련 문서 링크 제공
### 1.2 독자 고려사항
**대상 독자 정의**
- 누가 이 문서를 읽는가? (개발자, 관리자, 사용자)
- 독자의 기술 수준은? (초급, 중급, 고급)
- 독자가 달성하고자 하는 목표는?
**독자의 관점에서 작성**
- "무엇을 할 수 있는가" 중심으로 설명
- 단계별 가이드 제공
- 예상 질문에 대한 답변 포함
---
## 문서 구조 표준
### 2.1 필수 섹션
모든 문서는 다음 섹션을 포함해야 함:
1. **문서 헤더**
```markdown
# [문서 제목]
## 📋 문서 개요
**목적**: [문서의 목적을 한 문장으로]
**대상**: [독자 대상]
**버전**: [버전 번호]
**최종 수정일**: [YYYY-MM-DD 형식]
```
2. **목차**
```markdown
## 📑 목차
1. [섹션 1](#섹션-1)
2. [섹션 2](#섹션-2)
...
```
3. **본문** (문서 유형에 따라 다름)
4. **관련 문서** (선택)
```markdown
## 📚 관련 문서
- [문서 제목 1](./link-to-doc1.md)
- [문서 제목 2](./link-to-doc2.md)
```
5. **문서 푸터**
```markdown
---
**작성자**: [작성자명]
**최종 수정일**: [YYYY-MM-DD]
**문서 버전**: [버전 번호]
```
### 2.2 섹션 순서 가이드
#### 배포/설치 가이드 문서 구조:
1. 문서 개요
2. 목차
3. 시스템 개요
4. 배포 전 확인사항
5. 배포 절차
6. 기능 명세 (필요 시)
7. API 명세 (필요 시)
8. 프론트엔드 구현 (필요 시)
9. 테스트 가이드
10. 문제 해결
11. 변경 이력
12. 관련 문서
13. 문서 푸터
#### 기능 명세 문서 구조:
1. 문서 개요
2. 목차
3. 기능 개요
4. 요구사항
5. 기술 명세
6. 사용자 시나리오
7. 인터페이스 명세
8. 데이터베이스 스키마
9. API 명세
10. 에러 처리
11. 보안 고려사항
12. 성능 요구사항
13. 테스트 시나리오
14. 변경 이력
15. 관련 문서
#### API 문서 구조:
1. 문서 개요
2. 목차
3. API 개요
4. 인증 방식
5. 엔드포인트 목록
6. 엔드포인트 상세 (각 엔드포인트별)
- 설명
- HTTP 메서드
- URL
- 요청 파라미터
- 요청 본문
- 응답 형식
- 예시 요청/응답
- 에러 코드
7. 공통 에러 코드
8. 예시 코드
9. 변경 이력
---
## 문서 유형별 가이드
### 3.1 배포/설치 가이드
**목적**: 시스템을 배포하고 설치하는 방법 안내
**반드시 포함할 내용**:
- [ ] 환경 요구사항 (OS, 버전, 의존성)
- [ ] 배포 전 확인사항
- [ ] 단계별 배포 절차 (명령어 포함)
- [ ] 배포 검증 방법
- [ ] 롤백 절차
- [ ] 문제 해결 가이드
- [ ] 배포 체크리스트
**작성 예시**:
```markdown
## 배포 절차
### 3.1 데이터베이스 백업 (필수)
```bash
# 배포 전 백업
mysqldump -u root -p database_name > backup_$(date +%Y%m%d_%H%M%S).sql
```
**중요**: 모든 배포 전에 반드시 백업을 수행하세요.
### 3.2 마이그레이션 실행
1. 마이그레이션 파일 확인
```bash
ls -l db/migrations/
```
2. 마이그레이션 실행
```bash
npm run db:migrate
```
3. 결과 확인
```bash
# 예상 출력:
Batch 1 run: 2 migrations
```
```
### 3.2 기능 명세서
**목적**: 기능의 요구사항, 동작, 인터페이스를 상세히 기술
**반드시 포함할 내용**:
- [ ] 기능 개요 및 목적
- [ ] 사용자 시나리오 (최소 3개)
- [ ] 화면 또는 UI 설명 (스크린샷 포함 권장)
- [ ] 데이터베이스 스키마 (ERD 권장)
- [ ] API 엔드포인트 목록
- [ ] 에러 처리 방식
- [ ] 보안 고려사항
- [ ] 성능 요구사항
**작성 예시**:
```markdown
## 4.1 사용자 로그인 기능
### 목적
사용자가 이메일과 비밀번호로 시스템에 인증하는 기능
### 사용자 시나리오
#### 시나리오 1: 정상 로그인
1. 사용자가 로그인 페이지 접속
2. 이메일 입력: user@example.com
3. 비밀번호 입력: ********
4. "로그인" 버튼 클릭
5. 시스템이 인증 확인
6. 대시보드로 리다이렉트
#### 시나리오 2: 잘못된 비밀번호
1. 사용자가 잘못된 비밀번호 입력
2. "로그인" 버튼 클릭
3. 에러 메시지 표시: "이메일 또는 비밀번호가 올바르지 않습니다"
4. 로그인 실패 카운트 증가 (3회 초과 시 계정 잠금)
### API 명세
#### POST /api/auth/login
**요청 본문**:
```json
{
"email": "user@example.com",
"password": "password123"
}
```
**응답 (성공)**:
```json
{
"success": true,
"token": "eyJhbGciOiJIUzI1NiIsInR...",
"user": {
"id": 1,
"email": "user@example.com",
"name": "홍길동"
}
}
```
**응답 (실패)**:
```json
{
"success": false,
"message": "이메일 또는 비밀번호가 올바르지 않습니다"
}
```
```
### 3.3 API 문서
**목적**: API 엔드포인트 사용 방법 안내
**반드시 포함할 내용**:
- [ ] API 개요 및 Base URL
- [ ] 인증 방식 (JWT, API Key 등)
- [ ] 전체 엔드포인트 목록 (표 형식)
- [ ] 각 엔드포인트 상세 (HTTP 메서드, URL, 파라미터, 요청/응답)
- [ ] 공통 에러 코드 테이블
- [ ] 예시 요청/응답 (curl, JavaScript 등)
- [ ] Rate Limiting 정보 (있는 경우)
**작성 예시**:
```markdown
## API 개요
**Base URL**: `http://api.example.com/v1`
**인증 방식**: Bearer Token (JWT)
모든 요청 헤더에 다음을 포함해야 함:
```
Authorization: Bearer YOUR_JWT_TOKEN
```
## 엔드포인트 목록
| 메서드 | 경로 | 설명 | 인증 필요 |
|--------|------|------|-----------|
| POST | /auth/login | 로그인 | No |
| POST | /auth/logout | 로그아웃 | Yes |
| GET | /users/:id | 사용자 조회 | Yes |
| PUT | /users/:id | 사용자 수정 | Yes |
## POST /auth/login
**설명**: 이메일과 비밀번호로 로그인
**요청**:
```bash
curl -X POST http://api.example.com/v1/auth/login \
-H "Content-Type: application/json" \
-d '{
"email": "user@example.com",
"password": "password123"
}'
```
**응답 (200 OK)**:
```json
{
"success": true,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"user": {
"id": 1,
"email": "user@example.com",
"name": "홍길동"
}
}
```
**에러 코드**:
- `400`: 잘못된 요청 (이메일 또는 비밀번호 누락)
- `401`: 인증 실패 (잘못된 이메일 또는 비밀번호)
- `429`: 너무 많은 요청 (Rate Limit 초과)
```
### 3.4 트러블슈팅/문제 해결 가이드
**목적**: 흔히 발생하는 문제와 해결 방법 제공
**반드시 포함할 내용**:
- [ ] 문제별 섹션 구분
- [ ] 증상 (오류 메시지, 로그 등)
- [ ] 원인 분석
- [ ] 해결 방법 (단계별)
- [ ] 예방 방법
**작성 예시**:
```markdown
## 8.1 데이터베이스 연결 오류
### 증상
```
Error: connect ECONNREFUSED 127.0.0.1:3306
```
### 원인
1. MySQL 서버가 실행되지 않음
2. 잘못된 DB 접속 정보 (호스트, 포트, 사용자명, 비밀번호)
3. 방화벽이 포트 차단
### 해결 방법
1. MySQL 서버 상태 확인
```bash
sudo systemctl status mysql
```
2. 서버가 실행되지 않으면 시작
```bash
sudo systemctl start mysql
```
3. 접속 정보 확인 (.env 파일)
```bash
cat .env | grep DB_
```
예상 내용:
```
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=your_password
```
4. 방화벽 확인 (리눅스)
```bash
sudo ufw status
sudo ufw allow 3306
```
### 예방 방법
- 서버 재부팅 시 MySQL 자동 시작 설정
```bash
sudo systemctl enable mysql
```
- 접속 정보를 환경 변수로 관리하고 git에 커밋하지 않기
```
### 3.5 변경 이력 (Changelog)
**목적**: 버전별 변경사항 기록
**작성 규칙**:
- 최신 버전이 위로 (역순)
- 버전 번호는 Semantic Versioning (MAJOR.MINOR.PATCH)
- 변경사항을 카테고리별로 분류
- **기능 추가** (Added)
- **기능 변경** (Changed)
- **기능 삭제** (Deprecated)
- **기능 제거** (Removed)
- **버그 수정** (Fixed)
- **보안** (Security)
**작성 예시**:
```markdown
## 변경 이력
### v1.2.0 (2026-01-26)
**기능 추가**:
- 대시보드 TBM 빠른 작업 배너 추가
- 페이지 접근 권한 기반 표시/숨김 처리
- `checkTbmPageAccess()` 함수 추가 (`modern-dashboard.js`)
**기능 변경**:
- 안전 체크리스트 카테고리 표시 개선 (그룹화)
**버그 수정**:
- TBM 팀원 자동 선택 시 중복 선택 문제 해결
- 날짜 선택 시 Draft 세션 우선 처리 로직 수정
**커밋**: `67e9c08`
### v1.1.0 (2026-01-20)
**기능 추가**:
- 작업 인계 시스템 추가
- TBM 상세보기 모달 추가
**커밋**: `4802069`
### v1.0.0 (2026-01-15)
**초기 배포**:
- TBM 시스템 기본 기능 구현
- 데이터베이스 스키마 생성 (5개 테이블)
- API 엔드포인트 17개
**커밋**: `4d0c4c0`
```
---
## 작성 규칙
### 4.1 마크다운 스타일
#### 제목 레벨
- `#`: 문서 제목 (1개만)
- `##`: 주요 섹션
- `###`: 하위 섹션
- `####`: 세부 항목
- 5단계 이상 중첩 금지
#### 코드 블록
- 언어 지정 필수: ` ```javascript`, ` ```bash`, ` ```sql`
- 주석으로 설명 추가
- 예상 출력 포함
```markdown
좋은 예시:
```bash
# 데이터베이스 백업
mysqldump -u root -p hyungi > backup.sql
# 예상 출력:
# Enter password:
# [백업 완료]
```
나쁜 예시:
```
mysqldump -u root -p hyungi > backup.sql
```
```
#### 링크
- 내부 링크: `[섹션 제목](#섹션-제목-소문자-하이픈)`
- 외부 링크: `[링크 텍스트](https://url)`
- 문서 링크: `[문서 제목](./path/to/doc.md)`
#### 강조
- **굵게**: `**중요한 내용**`
- *기울임*: `*강조*`
- `코드`: `` `변수명` ``
- 인용구: `> 주의사항`
#### 리스트
- 순서 있는 리스트: `1. `, `2. `
- 순서 없는 리스트: `- ` 또는 `* `
- 체크리스트: `- [ ] 미완료`, `- [x] 완료`
### 4.2 명명 규칙
#### 파일명
- 대문자와 밑줄 사용: `TBM_DEPLOYMENT_GUIDE.md`
- 카테고리 접두사 사용 (선택): `API_`, `GUIDE_`, `SPEC_`
- 날짜 포함 금지 (git 이력으로 관리)
#### 섹션 제목
- 명확하고 간결하게
- 동사형 사용: "배포하기", "설치하기"
- 번호 포함: "1.1 시스템 개요"
### 4.3 코드 예시 작성 규칙
#### 완전한 예시 제공
```markdown
좋은 예시:
```javascript
// TBM 세션 생성
async function createTbmSession(data) {
try {
const response = await window.apiCall('/tbm/sessions', 'POST', data);
if (response.success) {
console.log('TBM 세션 생성 성공:', response.data.session_id);
return response.data;
}
} catch (error) {
console.error('TBM 세션 생성 실패:', error);
throw error;
}
}
// 사용 예시
const session = await createTbmSession({
session_date: '2026-01-26',
leader_id: 1,
project_id: 5
});
```
나쁜 예시:
```javascript
// TBM 세션 생성
async function createTbmSession(data) {
// ... 생략 ...
}
```
```
#### 주석 활용
- 코드 블록 상단에 설명 주석 추가
- 중요한 파라미터에 인라인 주석
- 예상 결과 주석으로 표시
### 4.4 표 작성 규칙
#### 간결하고 읽기 쉽게
```markdown
좋은 예시:
| 필드명 | 타입 | 필수 | 설명 |
|--------|------|------|------|
| session_date | DATE | Yes | TBM 날짜 |
| leader_id | INT | Yes | 팀장 ID |
| project_id | INT | No | 프로젝트 ID |
나쁜 예시:
| 필드명 | 데이터 타입 (MySQL) | 필수 여부 | Nullable | Default | 설명 |
|--------|---------------------|-----------|----------|---------|------|
| session_date | DATE | 필수 | NO | NULL | TBM이 진행되는 날짜 (YYYY-MM-DD 형식) |
```
#### 열 수 제한
- 최대 5열까지 권장
- 더 많은 정보가 필요하면 섹션 분리
### 4.5 다이어그램 작성 규칙
#### ASCII 다이어그램 사용
```markdown
시스템 아키텍처:
```
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Frontend │────▶│ Backend │────▶│ Database │
│ (React) │ │ (Node.js) │ │ (MySQL) │
└─────────────┘ └─────────────┘ └─────────────┘
```
데이터 흐름:
```
User → Login Page → API (/auth/login) → JWT Token → Dashboard
```
```
#### Mermaid 다이어그램 (GitHub 지원)
```markdown
```mermaid
sequenceDiagram
participant U as User
participant F as Frontend
participant B as Backend
participant D as Database
U->>F: 로그인 요청
F->>B: POST /auth/login
B->>D: 사용자 확인
D-->>B: 사용자 정보
B-->>F: JWT 토큰
F-->>U: 대시보드로 리다이렉트
```
```
### 4.6 버전 관리 규칙
#### Semantic Versioning 사용
- **MAJOR**: 호환성이 깨지는 변경 (예: API 구조 변경)
- **MINOR**: 기능 추가 (하위 호환)
- **PATCH**: 버그 수정 (하위 호환)
예시:
- `v1.0.0`: 초기 배포
- `v1.1.0`: 새 기능 추가
- `v1.1.1`: 버그 수정
- `v2.0.0`: API 구조 변경 (Breaking Change)
#### 문서 버전과 코드 버전 분리
- 문서 자체 버전: 문서 푸터에 "문서 버전"으로 명시
- 코드/시스템 버전: 변경 이력에 기록
---
## 예시 템플릿
### 5.1 배포 가이드 템플릿
```markdown
# [시스템/기능명] 배포 가이드
## 📋 문서 개요
**목적**: [배포 목적을 한 문장으로]
**대상**: 시스템 관리자, DevOps 엔지니어
**버전**: v1.0.0
**최종 수정일**: YYYY-MM-DD
---
## 📑 목차
1. [시스템 개요](#시스템-개요)
2. [배포 전 확인사항](#배포-전-확인사항)
3. [배포 절차](#배포-절차)
4. [테스트 가이드](#테스트-가이드)
5. [문제 해결](#문제-해결)
6. [롤백 절차](#롤백-절차)
7. [변경 이력](#변경-이력)
---
## 시스템 개요
### 1.1 [시스템/기능명]이란?
[시스템이나 기능에 대한 간단한 설명]
### 1.2 주요 기능
| 기능 | 설명 |
|------|------|
| 기능 1 | 설명 |
| 기능 2 | 설명 |
### 1.3 시스템 아키텍처
```
[다이어그램]
```
---
## 배포 전 확인사항
### 2.1 환경 요구사항
- **OS**: [운영체제 및 버전]
- **런타임**: [Node.js, Python 등 버전]
- **데이터베이스**: [MySQL, PostgreSQL 등 버전]
- **기타**: [의존성]
### 2.2 필수 의존성
```json
{
"의존성": "버전"
}
```
### 2.3 기존 시스템 확인
```bash
# 확인 명령어
```
---
## 배포 절차
### 3.1 데이터베이스 백업 (필수)
```bash
# 백업 명령어
```
### 3.2 [단계별 배포]
#### 3.2.1 [하위 단계]
```bash
# 명령어
```
[설명]
#### 3.2.2 확인
```bash
# 확인 명령어
```
예상 결과:
```
[예상 출력]
```
### 3.3 배포 체크리스트
- [ ] 백업 완료
- [ ] [항목 1]
- [ ] [항목 2]
---
## 테스트 가이드
### 4.1 [테스트 유형 1]
[테스트 방법]
### 4.2 [테스트 유형 2]
[테스트 방법]
---
## 문제 해결
### 5.1 [문제 1]
**증상**:
```
[오류 메시지]
```
**원인**: [원인 설명]
**해결**:
```bash
# 해결 명령어
```
---
## 롤백 절차
### 6.1 데이터베이스 롤백
```bash
# 롤백 명령어
```
### 6.2 코드 롤백
```bash
# 롤백 명령어
```
---
## 변경 이력
### v1.0.0 (YYYY-MM-DD)
**초기 배포**:
- [변경사항 1]
- [변경사항 2]
**커밋**: `[커밋 해시]`
---
**작성자**: [작성자명]
**최종 수정일**: YYYY-MM-DD
**문서 버전**: 1.0
```
### 5.2 API 문서 템플릿
```markdown
# [API 이름] API 문서
## 📋 문서 개요
**목적**: [API 목적]
**대상**: 백엔드 개발자, 프론트엔드 개발자
**버전**: v1.0.0
**최종 수정일**: YYYY-MM-DD
---
## 📑 목차
1. [API 개요](#api-개요)
2. [인증](#인증)
3. [엔드포인트 목록](#엔드포인트-목록)
4. [엔드포인트 상세](#엔드포인트-상세)
5. [에러 코드](#에러-코드)
6. [예시 코드](#예시-코드)
---
## API 개요
**Base URL**: `http://api.example.com/v1`
**프로토콜**: HTTPS
**데이터 형식**: JSON
---
## 인증
### 2.1 인증 방식
[인증 방식 설명 - JWT, API Key 등]
### 2.2 인증 헤더
```
Authorization: Bearer YOUR_TOKEN
```
### 2.3 토큰 발급
[토큰 발급 방법]
---
## 엔드포인트 목록
| 메서드 | 경로 | 설명 | 인증 필요 |
|--------|------|------|-----------|
| POST | /auth/login | 로그인 | No |
| GET | /users/:id | 사용자 조회 | Yes |
---
## 엔드포인트 상세
### POST /endpoint-path
**설명**: [엔드포인트 설명]
**요청**:
```bash
curl -X POST http://api.example.com/v1/endpoint-path \
-H "Content-Type: application/json" \
-d '{
"param1": "value1"
}'
```
**요청 파라미터**:
| 파라미터 | 타입 | 필수 | 설명 |
|----------|------|------|------|
| param1 | string | Yes | 설명 |
**응답 (200 OK)**:
```json
{
"success": true,
"data": {
"field1": "value1"
}
}
```
**에러 응답**:
- `400`: 잘못된 요청
- `401`: 인증 실패
- `404`: 리소스 없음
- `500`: 서버 오류
---
## 에러 코드
| 코드 | 메시지 | 설명 |
|------|--------|------|
| 400 | Bad Request | 잘못된 요청 |
| 401 | Unauthorized | 인증 실패 |
---
## 예시 코드
### JavaScript (Fetch)
```javascript
const response = await fetch('http://api.example.com/v1/endpoint', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${token}`
},
body: JSON.stringify({
param1: 'value1'
})
});
const data = await response.json();
console.log(data);
```
---
**작성자**: [작성자명]
**최종 수정일**: YYYY-MM-DD
**문서 버전**: 1.0
```
---
## 문서 검토 체크리스트
배포 전 다음 항목을 확인:
### 내용 검토
- [ ] 문서 개요 (목적, 대상, 버전, 날짜) 작성됨
- [ ] 목차가 있고 모든 링크가 작동함
- [ ] 모든 필수 섹션이 포함됨
- [ ] 코드 예시가 완전하고 테스트됨
- [ ] 명령어가 정확하고 실행 가능함
- [ ] 예상 출력이 명시됨
- [ ] 문제 해결 섹션이 충분함
- [ ] 변경 이력이 업데이트됨
### 형식 검토
- [ ] 마크다운 문법이 올바름
- [ ] 코드 블록에 언어가 지정됨
- [ ] 링크가 모두 작동함
- [ ] 표 형식이 올바름
- [ ] 이미지/다이어그램이 표시됨
- [ ] 날짜 형식이 일관됨 (YYYY-MM-DD)
- [ ] 버전 번호가 일관됨
### 독자 관점 검토
- [ ] 초보자도 따라할 수 있는가?
- [ ] 모든 전제 조건이 명시되었는가?
- [ ] 모호한 표현이 없는가?
- [ ] 예시가 충분한가?
- [ ] 문제 상황 대응 방법이 있는가?
---
**작성자**: Claude
**최종 수정일**: 2026-01-26
**문서 버전**: 1.0