패스잇
시스템 설계 · 심화

URI, Header, Query Parameter, Content Negotiation 등 다양한 API 버전 관리 전략의 장단점을 비교하고, 대규모 서비스에서 여러 클라이언트와 빠르게 진화하는 요구사항을 동시에 만족시키면서 API 호환성을 유지하기 위한 최적의 버전 관리 전략과 그 이유를 설명하시오.

힌트 · 각 방식의 구현 용이성, 캐싱 효율성, 클라이언트 복잡성, 그리고 API 진화 전략을 종합적으로 고려해야 합니다.

URI 버전 관리Content Negotiation하위 호환성점진적 배포API Gateway

모범답안

API 버전 관리 전략은 여러 가지가 있지만, 대규모 서비스에서는 하위 호환성을 유지하면서 빠르게 변화하는 요구사항을 만족시키는 것이 중요합니다.

URI 버전 관리는 구현이 간단하지만, 캐싱 효율성이 떨어지고 API 변경 시 모든 URI를 수정해야 하는 단점이 있습니다. Content Negotiation은 클라이언트가 원하는 버전을 선택할 수 있어 유연하지만, 구현이 복잡하고 클라이언트에게 부담을 줄 수 있습니다. Query Parameter 방식은 간단하지만 URI가 지저분해지는 경향이 있습니다.

저는 점진적 배포와 API Gateway를 활용한 하이브리드 전략을 선호합니다. API Gateway에서 요청 헤더를 기반으로 버전을 라우팅하고, 새로운 기능은 점진적으로 배포하여 위험을 최소화합니다. 예를 들어, Accept 헤더를 통해 클라이언트가 특정 버전을 요청하도록 하고, API Gateway에서 해당 버전에 맞는 API로 요청을 전달하는 방식입니다. 이를 통해 클라이언트는 기존 API를 계속 사용할 수 있으며, 새로운 기능은 점진적으로 적용할 수 있습니다. 또한, API Gateway에서 요청/응답 변환을 통해 하위 호환성을 유지할 수 있습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 API 설계 면접 질문

← API 설계 면접 질문 전체 보기