강건성 원칙(Robustness Principle)은 보내는 내용에는 엄격하고 받는 내용에는 관대하라는 프로토콜 설계의 조언이다. 포스텔의 법칙(Postel’s Law)이라고도 한다. 인터넷의 서로 다른 구현이 통신하도록 돕는 취지였지만, 잘못된 입력을 계속 묵인하면 그 오류까지 호환해야 하는 문제가 생긴다. RFC 9413은 이 한계를 검토하고 규격과 구현을 함께 유지·개선하는 방법을 제안한다. (강건한 프로토콜 유지하기)
어디까지 받아들일까
- 원고를 가져오는 도구를 만든다고 가정해보자. 허용할 날짜 표기와 공백 처리 규칙을 먼저 정해두면, 매번 의도를 추측해 바꾸는 일을 줄일 수 있다.
- 해석할 수 없는 값은 조용히 지우기보다 원본과 오류 위치를 남기는 방법을 검토하자. 조기 실패와 함께 중단할 범위와 계속 처리할 범위를 정할 수 있다.
- 호환성을 위해 예외 처리가 필요하다면 오류와 호환되는 일의 비용을 기록해보자. 누구의 어떤 자료를 위해 예외가 있는지, 언제 없앨 수 있는지를 남겨두면 좋다.