RFC 2119에서는 RFC 문서 사양의 요구 수준(필수 사양인지, 권장 사양인지 등)을 나타내는 용어를 정의한다.
용어
- MUST (REQUIRED, SHALL) : 반드시 따라야 함.
- MUST NOT (SHALL NOT) : 반드시 금지해야 함.
- SHOULD (RECOMMENDED) : 특별한 이유가 있다면 따르지 않아도 괜찮지만, 이로 인한 영향에 대해 충분한 이해가 필요함.
- SHOULD NOT (NOT RECOMMENDED) : 특별한 이유가 있다면 금지하지 않아도 괜찮지만, 이로 인한 영향에 대해 충분한 이해가 필요함.
- MAY (OPTIONAL) : 완전한 선택 사항. 해당 사양을 따르는 구현체와 따르지 않는 구현체는 상호간에 반드시(MUST) 호환되어야 한다.
한국어로는 어떻게 번역할까?
사회적으로 합의된 용어는 아니지만 나는 다음과 같이 번역하여 사용한다.
- MUST / MUST NOT = 반드시
- SHOULD / SHOULD NOT = 가급적
- MAY = 필요한 경우
여담
RFC 2119의 서론에는 '이 문서는 RFC 2119의 용어 정의를 따른다'고 기재되어있다. 즉 RFC 2119는 재귀적으로 정의되며, 이는 MAY의 정의에 MUST가 사용된다는 점에서 확인할 수 있다.