Foundry
API 설계
중급

API 버저닝

한번 나간 API는 마음대로 못 바꾼다

API 버저닝

방식 비교

방식장점단점
URL 경로/v1/orders명확, 라우팅과 캐시 쉬움URI가 리소스 식별을 벗어남
쿼리 파라미터?version=1도입 쉬움누락 시 기본값이 모호
헤더Accept: ...v1+jsonURL 유지디버깅과 캐시 불편
날짜 버전2026-08-01세밀한 이력 관리운영 복잡도 상승

무엇이 파괴적 변경인가

  • 파괴적: 필드 삭제, 이름 변경, 타입 변경, 필수 파라미터 추가, 에러 의미 변경
  • 비파괴적: 선택 필드 추가, 새 엔드포인트 추가, 응답에 값 추가

실무 포인트

  • 버전을 올리는 것보다 올리지 않아도 되게 설계하는 편이 싸다. 필드 추가는 하위호환이므로 v2를 만들 이유가 없다
  • 새 버전을 만들면 종료 계획을 함께 정한다. 지원 기간, 폐기 고지, 버전별 사용량 계측
  • 클라이언트가 배포를 제어할 수 없는 환경(모바일 앱)은 구버전이 오래 남는다. 강제 업그레이드 경로가 필요하다
  • 응답 파싱에서 미지의 필드를 허용하도록 클라이언트를 만들어 두면 서버 변경 폭이 넓어진다
면접에서 이렇게 나옵니다

Q.필드 하나를 제거해야 합니다. 새 버전을 만들지 않고 처리할 방법이 있나요?

답변을 준비하고 있어요. 우선 위 본문에서 근거를 찾아보세요.

Q.URL 버저닝과 헤더 버저닝의 트레이드오프를 설명해주세요

답변을 준비하고 있어요. 우선 위 본문에서 근거를 찾아보세요.

Q.구버전 API를 종료하려면 어떤 절차를 밟아야 하나요?

답변을 준비하고 있어요. 우선 위 본문에서 근거를 찾아보세요.

Q.모바일 앱 클라이언트 때문에 버전을 못 내리는 상황을 어떻게 관리하겠습니까?

답변을 준비하고 있어요. 우선 위 본문에서 근거를 찾아보세요.

먼저 스스로 답해보고 아래 답변과 견줘보세요. 막히는 부분은 문제로 확인할 수 있어요.

더 깊이 공부하기

읽었으면 문제로 확인해보세요

API 설계 문제를 풀면 틀린 문제가 자동으로 노트에 쌓입니다. 가입 없이 5문제를 먼저 풀어볼 수도 있어요.