R6RS Scheme: 요구 수준

R6RS Scheme: 요구 수준

R6RS 문서에서 사용하는 요구 수준(requirement level) 키워드의 의미를 설명해요. must, should, may 등의 용어가 RFC 2119에 따라 해석되는 방식을 다뤄요.

출처: 문서

본문

이 리포트에서 키워드 "must", "must not", "should", "should not", "recommended", "may", "optional"은 RFC 2119 [3]에서 설명한 대로 해석돼요. 구체적으로:

must 이 단어는 어떤 진술이 명세의 절대적인 요구사항이라는 뜻이에요. must not 이 구는 어떤 진술이 명세의 절대적인 금지사항이라는 뜻이에요. should 이 단어나 형용사 "recommended"는 특정 상황에서 어떤 진술을 무시할 타당한 이유가 존재할 수 있지만, 다른 길을 선택하기 전에 그 영향을 이해하고 저울질해야 한다는 뜻이에요. should not 이 구나 "not recommended"라는 구는 특정 상황에서 어떤 진술의 동작이 수용 가능한 타당한 이유가 존재할 수 있지만, 그 진술이 설명한 길을 선택하기 전에 그 영향을 이해하고 저울질해야 한다는 뜻이에요. may 이 단어나 형용사 "optional"은 어떤 항목이 정말로 선택적이라는 뜻이에요.

특히 이 리포트는 때때로 "should"를 사용해 이 리포트의 명세 바깥에 있지만 구현이 실질적으로 감지할 수 없는 상황을 지칭하기도 해요; 5.4절을 보세요. 그런 상황에서 특정 구현은 프로그래머가 리포트의 권고를 무시하고 심지어 합리적인 동작을 보이도록 허용할 수 있어요. 그러나 리포트가 그 동작을 명세하지 않으므로, 이러한 프로그램은 이식성이 없을 수 있어요. 즉, 실행이 구현에 따라 다른 결과를 만들어낼 수도 있어요.

또한 이 리포트는 때때로 "not required"라고 하는 구를 사용해 절대적인 요구사항이 없다는 점을 알려줘요.

더 알아보기 (Learn more)

출처: Requirement levels - R6RS