개요

많은 RFC 문서에서 이런 문구를 볼 수 있습니다.

In many standards track documents several words are used to signify
the requirements in the specification.  These words are often
capitalized.  This document defines these words as they should be
interpreted in IETF documents.  Authors who follow these guidelines
should incorporate this phrase near the beginning of their document:

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
   NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in
   RFC 2119.

RFC 2119와 RFC 8174는 여기에서 사용되는 MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, OPTIONAL의 의미를 정의하는 문서입니다.

RFC 2119

MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, OPTIONAL의 의미를 정의합니다.

이 단어들은 대문자로 표기되는 경우가 많습니다.

MUST, REQUIRED, SHALL

이 셋은 절대적인 요구사항임을 나타냅니다.

MUST NOT, SHALL NOT

이 둘은 MUST, REQUIRED, SHALL의 반대로, 절대 하지 말아야 할 것임을 나타냅니다.

SHOULD, RECOMMENDED

이 둘은 권장사항임을 나타냅니다.

상황에 따라 무시해도 되는 타당한 이유가 있을 수도 있지만,

다른 방법을 선택하기 전에 전체 의미를 파악하고 신중히 고려해야 합니다.

SHOULD NOT, NOT RECOMMENDED

이 둘은 SHOULD, RECOMMENDED의 반대로, 그렇게 하지 않을 것을 권장한다는 의미입니다.

마찬가지로 상황에 따라 그렇게 해도 되는 타당한 이유가 있을 수도 있지만,

그렇게 하기 전에 전체 의미를 파악하고 신중히 고려해야 합니다.

MAY, OPTIONAL

이 둘은 정말로 선택사항임을 나타냅니다.

단, 반드시(MUST) 해당 선택사항을 포함한 구현체와 해당 선택사항을 제외한 구현체가 서로 상호작용할 수 있어야 합니다.

RFC 8174

RFC 2119는 보편적인 키워드(위 단어)들의 의미를 정의합니다.

이 단어들은 대문자로 표기되는 경우가 많습니다.

RFC 8174는 해당 키워드가 모두 대문자로 표기되는 경우에만 RFC 2119에서 정의한 의미대로 쓰인다는 내용을 담고 있습니다.

기존 (RFC 2119)

RFC 2119의 정의를 사용할 때, 기존에는 이 문구를 사용했었습니다.

In many standards track documents several words are used to signify
the requirements in the specification.  These words are often
capitalized.  This document defines these words as they should be
interpreted in IETF documents.  Authors who follow these guidelines
should incorporate this phrase near the beginning of their document:

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119.

신규 (RFC 8174)

해당 키워드가 소문자로 쓰이는 경우 해석의 모호함을 해결하기 위해서는 이 문구를 사용하면 됩니다.

In many IETF documents, several words, when they are in all capitals
as shown below, are used to signify the requirements in the
specification.  These capitalized words can bring significant clarity
and consistency to documents because their meanings are well defined.
This document defines how those words are interpreted in IETF
documents when the words are in all capitals.

o  These words can be used as defined here, but using them is not
   required.  Specifically, normative text does not require the use
   of these key words.  They are used for clarity and consistency
   when that is what's wanted, but a lot of normative text does not
   use them and is still normative.

o  The words have the meanings specified herein only when they are in
   all capitals.

o  When these words are not capitalized, they have their normal
   English meanings and are not affected by this document.

Authors who follow these guidelines should incorporate this phrase
near the beginning of their document:

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
   NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
   "MAY", and "OPTIONAL" in this document are to be interpreted as
   described in BCP 14 [RFC2119] [RFC8174] when, and only when, they
   appear in all capitals, as shown here.

참고 자료