요구사항 작성
효과적인 요구사항 작성 방법을 안내합니다.
요구사항 구조
markdown
### REQ-01: 요구사항 제목
- 시스템은 [동작]을 [조건]에서 [결과]해야 한다(SHALL)ID 형식
REQ-XX- REQ: 요구사항 접두사
- XX: 2자리 숫자 (01, 02, ...)
좋은 요구사항의 특성
1. 명확함 (Clear)
❌ 나쁜 예:
markdown
시스템은 빠르게 응답해야 한다✅ 좋은 예:
markdown
시스템은 95%의 요청에 200ms 이내로 응답해야 한다(SHALL)2. 검증 가능 (Verifiable)
❌ 나쁜 예:
markdown
시스템은 사용하기 쉬워야 한다✅ 좋은 예:
markdown
시스템은 3단계 이내로 주요 기능에 접근할 수 있어야 한다(SHALL)3. 독립적 (Independent)
각 요구사항은 독립적으로 구현/테스트 가능해야 합니다.
4. 추적 가능 (Traceable)
코드와 테스트에서 요구사항 ID를 참조합니다:
typescript
/**
* @spec REQ-01
*/
function login() {}카테고리별 요구사항
기능 요구사항
markdown
### REQ-01: 사용자 로그인
- 시스템은 이메일/비밀번호 로그인을 지원해야 한다(SHALL)보안 요구사항
markdown
### REQ-02: 비밀번호 저장
- 시스템은 비밀번호를 bcrypt로 해시하여 저장해야 한다(SHALL)
- 시스템은 평문 비밀번호를 로그에 기록해서는 안 된다(SHALL NOT)성능 요구사항
markdown
### REQ-03: 응답 시간
- 시스템은 API 응답을 500ms 이내로 반환해야 한다(SHALL)
- 시스템은 1000 동시 사용자를 지원해야 한다(SHOULD)접근성 요구사항
markdown
### REQ-04: 키보드 접근성
- 시스템은 모든 기능을 키보드로 사용할 수 있어야 한다(SHALL)우선순위 표시
markdown
### REQ-01: 로그인 [HIGH]
### REQ-02: 소셜 로그인 [MEDIUM]
### REQ-03: 생체 인증 [LOW]의존성 표시
markdown
### REQ-03: 비밀번호 재설정
- 시스템은 이메일로 재설정 링크를 발송해야 한다(SHALL)
- **의존성**: REQ-01 (로그인)검증 체크리스트
- [ ] RFC 2119 키워드 사용?
- [ ] 검증 가능한 조건?
- [ ] 구체적인 수치/기준?
- [ ] 명확한 주어와 동사?
- [ ] ID 형식 준수?