IETF Network Working Group 에서 1997.3 월에 공개한 2장짜리 문서로 스펙 문서를 적을 때 사용하는 조동사의 의미에 대해서 명확하게 기술해놓은 내용이다.
흔히 우리나라 개발자들은 이런 것에 스펙 문서에 신경을 잘 쓰지 않는 편인데, 한번 알아두면 나쁠 것은 없을 테고, 서로가 사용하는 동일한 단어에 대한 명확한 의미를 정해 놓으면 커뮤니케이션 잘못으로 인한 문제를 최소화할 수 있다는 장점이 있다.
그리고 영어로 된 스펙 문서를 볼 때, 이런 부분을 참고하면 좋을 것 같아 정리해본다.
번역참조 : https://techhtml.github.io/rfc/RFC2119.html
원본참조 : https://www.ietf.org/rfc/rfc2119.txt
용어 | 설명 |
Must / Required / Shall | 스펙에서 요구하는 절대적인 요구사항으로 반드시 준수해야 한다. |
Must Not / Shall Not | 스펙에서 절대 해서는 안되는 금지사항이다. |
Should / Recommended | 특별한 상황(particular circumstances)에서 특별한 아이템을 무시할 타당한 이유가 있을 수도 있지만, 다른 방법을 선택하려고 할때, 함축된 의미를 완전하게 이해해야하고, 신중하게 고려되어야 함을 의미한다 |
Should Not / Recommended Not | 특별한 상황에서 특별한 동작이 가능하거나 유용한, 타당한 이유가 존재할 수 있지만, 다른 방법을 선택하기전에 함축된 의미를 완전하게 이해해야하고, 신중하게 고려되어야 함을 의미한다. |
May / Optional | 아이템이 옵션임을 의미한다. 어떤 벤더는 다른 벤더가 동일한 아이템을 삭제했다고 하더라도, 제품을 향상시킬 수 있다고 생각하거나, 특정한 시장에서 요구된다고 생각할 때, 아이템을 포함하도록 선택할 수 있다. 특정 옵션을 포함하지 않는 구현은 기능이 줄어들 망정, 반드시 다른 구현과 상호작용이 가능해야 한다. 동일한 맥락에서 특정 기능을 포함하는 구현은 그 옵션을 포함하지 않는 다른 구현과 반드시 상호작용이 가능해야한다(물론 그 옵션이 제공하는 기능은 제외한다) |
위에 정의한 단어들은 남발하면 안된다. 반드시 이해가 필요한 부분이나, 잠재적으로 해를 끼치는 동작을 제한할 경우에만 사용하는 것이 좋다.
'IT 기술 > 개발환경_유틸 관련 팁' 카테고리의 다른 글
[GIT] commit message 유지하면서 commit 에 포함된 파일 제거하기 (0) | 2018.05.29 |
---|---|
[git/gerrit] gerrit 을 사용한 여러 project 함께 빌드 (0) | 2018.04.26 |
[ubuntu] minicom 스크립트 실행하기 (0) | 2013.09.25 |
[apt-get] update 에러 "E: Encountered a section with no Package: header" (0) | 2013.09.12 |
[Ubuntu] minicom serial 설정 (0) | 2013.09.11 |