3.1.3 API 발전시키기
API는 새 기능을 추가하거나 기존 기능을 변경/삭제하는 과정을 거치며 계속 변합니다. 모놀리식 애플리케이션은 API를 변경하고 모든 호출부(caller, 호출하는 코드)를 수정하는 일이 그리 어렵지 않습니다. 자바 같은 정적 타입 언어를 사용한다면 컴파일러를 이용해서 컴파일 에러 목록을 보면 쉽게 찾아갈 수 있죠. 여러 곳에서 사용하는 API를 고치려면 시간이 많이 걸리므로 사실상 변경 범위가 유일한 문제입니다.
마이크로서비스 애플리케이션은 클라이언트를 다른 서비스 팀이 개발한 경우가 대부분이기 때문에 서비스 API를 변경하기가 무척 어렵습니다. 서비스를 사용하는 클라이언트를 모두 찾아 강제로 업그레이드시킬 수도 없겠죠. 또 요즘은 유지보수할 때 서버를 내리지 않기 때문에 규칙적인 단계로 서비스를 업그레이드하여 신구 버전을 동시에 실행합니다.
이런 문제를 해결하려면 전략을 잘 세워야 합니다. API를 변경하는 방법도 어떤 성격의 변경인지에 따라 달라집니다.