무중단 배포와 api 버전

2026. 01. 06.
카테고리
게시일
Jan 6, 2026

무중단 배포

새 버전이 준비되고 정상임이 확인될 때까지 기존 버전을 계속 서비스하여 사용자가 중단을 느끼지 않게 하는 배포 방식이다.

어떻게 하는가?

우선 고려해야할 것은, 웹 fe는 사용자가 새로고침하지않는 이상 새로 업데이트되지 않는다는 것이다. 거기에 cdn까지 붙어있는 경우, cdn캐시가 변경될때 까지는 기존버전 fe가 계속 서비스될 것이다.
앱도 마찬가지로, 사용자 기기에서 업데이트를 하지 않는 이상 기존버전 앱이 돌아간다. 따라서, 그냥 be와 fe를 바꾸기만 한다고 해서 무중단 배포가 가능하지 않다.
이를 해결하기 위해서는 여러 서버를 올리고, 한 서버는 옛날 fe, 한 서버는 최신 fe에 대응되도록 해야한다.

API 버전 도입

  • Api를 호출 할 때 버전으로 구분하도록 한다.
    • 여러 방법이 있겠지만, 가장 직관적인것은 URL path에 버전을 나누는 것이다.
    • v1/userinfo
    • v2/userinfo
  • 예비 서버를 여러개 만든다.
  • 프록시가 유저 fe가 요청한 api의 url path에 따라 알아서 애플리케이션 서버를 찾도록 한다.

예시

쿠버네티스를 쓰는 경우
  • Uri path로 버전 나눔
    • Fe에서는 새버전 개발시 전역변수로 API_BASE_URL=V213/이런식으로 prefix를 둔다
    • Be에서는 새버전 개발시 전역변수로 API_VERSION=V213/ 이런식으로 prefix를 둔다
  • 쿠버네티스에서 애플리케션 pod(스프링, python fastapi 등등..) 중에서 기존 pod 일부를 최신 pod으로 대체
  • Ingress pod(nginx등) 에서 uri 버전명을 보고 올바른 pod으로 프록싱
제목: 무중단 배포와 api 버전작성일: 2026. 01. 06.