새로운 질서 위키

강건성 원칙

강건성 원칙(Robustness Principle)은 보내는 내용에는 엄격하고 받는 내용에는 관대하라는 프로토콜 설계의 조언이다. 포스텔의 법칙(Postel’s Law)이라고도 한다. 인터넷의 서로 다른 구현이 통신하도록 돕는 취지였지만, 잘못된 입력을 계속 묵인하면 그 오류까지 호환해야 하는 문제가 생긴다. RFC 9413은 이 한계를 검토하고 규격과 구현을 함께 유지·개선하는 방법을 제안한다. (강건한 프로토콜 유지하기)

어디까지 받아들일까

  • 원고를 가져오는 도구를 만든다고 가정해보자. 허용할 날짜 표기와 공백 처리 규칙을 먼저 정해두면, 매번 의도를 추측해 바꾸는 일을 줄일 수 있다.
  • 해석할 수 없는 값은 조용히 지우기보다 원본과 오류 위치를 남기는 방법을 검토하자. 조기 실패와 함께 중단할 범위와 계속 처리할 범위를 정할 수 있다.
  • 호환성을 위해 예외 처리가 필요하다면 오류와 호환되는 일의 비용을 기록해보자. 누구의 어떤 자료를 위해 예외가 있는지, 언제 없앨 수 있는지를 남겨두면 좋다.

기타 등등

  • RFC 9413은 RFC 문서군에서 이 원칙의 초기 표현이 RFC 760에 등장한다고 설명한다. 그 앞 문장에는 규격을 서로 다르게 해석할 가능성이 언급돼 있었다. 출처
  • 같은 문서는 BGP의 잘못된 메시지를 처리하는 관행이 RFC 7606에서 구체적인 오류 처리 규칙으로 정리된 사례를 든다. 현장에서 생긴 대응을 규격에 다시 반영한 것이다. 출처

#원칙 #인터넷 #프로토콜