RFC 2119 키워드
RFC 2119는 요구사항 문서에서 사용하는 키워드를 정의한 표준입니다.
키워드 목록
| 키워드 | 의미 | 사용 시기 |
|---|---|---|
| SHALL | 절대 필수 | 핵심 기능, 보안 요구사항 |
| MUST | SHALL과 동일 | 법적/규정 요구사항 |
| SHOULD | 권장 (예외 허용) | 사용자 경험 개선 |
| MAY | 선택적 | 부가 기능 |
| SHALL NOT | 절대 금지 | 보안 위반, 안티패턴 |
| SHOULD NOT | 권장하지 않음 | 레거시 방식, 비효율적 패턴 |
사용 예시
SHALL (절대 필수)
markdown
- 시스템은 비밀번호를 해시하여 저장해야 한다(SHALL)
- 시스템은 HTTPS만 허용해야 한다(SHALL)SHOULD (권장)
markdown
- 시스템은 로딩 인디케이터를 표시해야 한다(SHOULD)
- 시스템은 에러 메시지를 사용자 친화적으로 표시해야 한다(SHOULD)MAY (선택)
markdown
- 시스템은 다크 모드를 지원할 수 있다(MAY)
- 시스템은 키보드 단축키를 제공할 수 있다(MAY)SHALL NOT (절대 금지)
markdown
- 시스템은 평문 비밀번호를 저장해서는 안 된다(SHALL NOT)
- 시스템은 사용자 데이터를 제3자에게 공유해서는 안 된다(SHALL NOT)한글 표기
| 키워드 | 한글 표기 |
|---|---|
| SHALL | ~해야 한다(SHALL) |
| SHOULD | ~해야 한다(SHOULD) |
| MAY | ~할 수 있다(MAY) |
| SHALL NOT | ~해서는 안 된다(SHALL NOT) |
검증 방법
SDD Tool은 RFC 2119 키워드 사용을 검증합니다:
bash
sdd validate키워드가 없으면 경고를 표시합니다.
모범 사례
핵심 기능에는 SHALL 사용
- 없으면 시스템이 동작하지 않는 기능
UX 개선에는 SHOULD 사용
- 없어도 동작하지만 있으면 좋은 기능
실험적 기능에는 MAY 사용
- 향후 추가될 수 있는 기능
보안 위반에는 SHALL NOT 사용
- 절대 하면 안 되는 행위