패스잇
시스템 설계 · 중급

API 버저닝(Versioning)을 적용하는 주요 목적은 무엇이며, URI 버저닝, 헤더 버저닝, 쿼리 파라미터 버저닝 방식의 장단점을 비교하고, 실제 프로젝트에서 어떤 상황에 적합한지 설명해주세요.

힌트 · 버저닝은 하위 호환성 유지를 위해 필요하며, 각 방식은 가독성, 유연성, 캐싱 등의 측면에서 장단점이 다릅니다.

호환성 유지클라이언트 영향 최소화URI 버저닝헤더 버저닝쿼리 파라미터 버저닝

모범답안

API 버저닝의 주요 목적은 기존 클라이언트 애플리케이션에 영향을 주지 않으면서 API를 발전시키는 것입니다. 하위 호환성을 유지하여 클라이언트가 갑작스러운 변경으로 인해 작동을 멈추는 것을 방지합니다.

URI 버저닝은 직관적이지만 URI 구조가 복잡해지고, 캐싱이 어려워질 수 있습니다. 헤더 버저닝은 깔끔하지만, 헤더를 모르는 클라이언트는 사용하기 어렵습니다. 쿼리 파라미터 버저닝은 간단하지만, URI가 지저분해지고 가독성이 떨어집니다.

예를 들어, 모바일 앱과 같이 다양한 클라이언트가 존재하는 경우, URI 버저닝을 통해 명확하게 버전을 구분하는 것이 좋습니다. 내부 API의 경우, 헤더 버저닝을 사용하여 깔끔하게 관리할 수 있습니다. 간단한 API의 경우, 쿼리 파라미터 버저닝을 사용할 수도 있습니다. 중요한 것은 각 방식의 장단점을 이해하고 프로젝트의 특성에 맞게 선택하는 것입니다.

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

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

함께 보는 API 설계 면접 질문

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