하이럼의 법칙
API 사용자가 충분히 많으면, 명세에 뭐라고 적었든 상관없다. 시스템의 모든 관찰 가능한 동작에 누군가는 의존하게 된다.
에러 메시지의 문구를 바꿨더니 파싱하던 코드가 깨진다. 응답 순서를 바꿨더니 순서에 의존하던 코드가 깨진다. 버그를 고쳤더니 그 버그에 의존하던 코드가 깨진다.
“그건 명세에 없는 동작인데요”라고 말해봤자 소용없다. 이미 프로덕션에서 돌아가고 있고, 고객이 쓰고 있다.
라이브러리를 만들 때, API를 설계할 때, 이 법칙을 기억해야 한다. 한번 공개한 동작은 영원히 유지해야 할 수도 있다.
댓글