강건성 원칙(Robustness Principle)은 보내는 내용에는 엄격하고 받는 내용에는 관대하라는 프로토콜 설계의 조언이다. 포스텔의 법칙(Postel’s Law)이라고도 한다. 인터넷의 서로 다른 구현이 통신하도록 돕는 취지였지만, 잘못된 입력을 계속 묵인하면 그 오류까지 호환해야 하는 문제가 생긴다. RFC 9413은 이 한계를 검토하고 규격과 구현을 함께 유지·개선하는 방법을 제안한다. ([강건한 프로토콜 유지하기](https://www.rfc-editor.org/rfc/rfc9413.html)) ## 어디까지 받아들일까 - 원고를 가져오는 도구를 만든다고 가정해보자. 허용할 날짜 표기와 공백 처리 규칙을 먼저 정해두면, 매번 의도를 추측해 바꾸는 일을 줄일 수 있다. - 해석할 수 없는 값은 조용히 지우기보다 원본과 오류 위치를 남기는 방법을 검토하자. [[조기 실패]]와 함께 중단할 범위와 계속 처리할 범위를 정할 수 있다. - [[호환성]]을 위해 예외 처리가 필요하다면 [[오류와 호환되는 일]]의 비용을 기록해보자. 누구의 어떤 자료를 위해 예외가 있는지, 언제 없앨 수 있는지를 남겨두면 좋다. ## 기타 등등 - RFC 9413은 RFC 문서군에서 이 원칙의 초기 표현이 RFC 760에 등장한다고 설명한다. 그 앞 문장에는 규격을 서로 다르게 해석할 가능성이 언급돼 있었다. [출처](https://www.rfc-editor.org/rfc/rfc9413.html) - 같은 문서는 BGP의 잘못된 메시지를 처리하는 관행이 RFC 7606에서 구체적인 오류 처리 규칙으로 정리된 사례를 든다. 현장에서 생긴 대응을 규격에 다시 반영한 것이다. [출처](https://www.rfc-editor.org/rfc/rfc9413.html) #원칙 #인터넷 #프로토콜