하위 호환되는 소규모 변경
변경을 하더라도 가급적 하위 호환성을 보장하는 방향으로 해야 합니다. 뭔가 API에 추가하는 변경은 대부분 하위 호환됩니다.
• 옵션 속성을 요청에 추가
• 속성을 응답에 추가
• 새 작업을 추가
이런 종류의 변경은 새 서비스에 적용해도 기존 클라이언트 역시 별 문제없이 동작합니다. 단 “당신이 하는 일은 보수적으로, 다른 사람들이 하는 일은 관대하게 바라보라(Be conservative in what you do, be liberal in what you accept from others).”는 견고성 원칙(Robustness principle)4을 지켜야 합니다. 요청 속성이 누락되어도 서비스는 기본값을 제공하고, 서비스가 필요한 것보다 더 많은 속성을 응답하더라도 클라이언트는 간단히 무시해야 합니다. 클라이언트/서비스가 견고성 원칙을 뒷받침하는 요청/응답 포맷을 사용하면 이런 과정이 매끄럽게 진행됩니다.