NestJS에서 API 버전 관리하기(Versioning)

REST API와 같은 서버 애플리케이션을 운영하다 보면, 부득이하게 클라이언트에 큰 영향을 줄 수 있는 위험한 변경을 해야할 때가 있는데요. API Versioning, 즉 버전 관리를 통해서, 우리는 서버 측 API 변경에 따른 클라이언트의 영향을 최소화하고, API의 호환성과 안정성을 높일 수 있습니다.


버전 관리가 이루어지는 API는 보통 클라이언트에게 v1, v2, v3… 이런 식으로 여러 버전의 API를 제공하는데요. 그리고 클라이언트 애플리케이션에 문제를 일으킬 소지가 있는 변경이 발생하면 버전을 올리게 됩니다. 따라서, 클라이언트는 기존 버전을 사용하다가, 준비가 되었을 때 신규 버전으로 넘어갈 수 있죠.


다시 말해서, API Versioning을 통해서 서버 측에서는 보다 유연하게 API 변경 사항을 배포할 수 있고, 클라이언트 측에서는 위험한 변경 사항을 인지한 상태에서 충분히 테스트 후에 버전 업그레이드를 할 수 있게 됩니다.


이번 글에서는 NestJS에서 API의 버전을 체계적으로 관리하는 방법에 대해서 배워보도록 하겠습니다.


📝 포스팅: https://www.daleseo.com/nestjs-versioning/

🧑‍💻 실습 코드: https://stackblitz.com/edit/nestjs-versioning


NestJS를 공부하고 계신다면 아래 게시물도 같이 참고해보시면 도움이 될 것 같습니다.

📕 NestJS 처음 시작하기: https://careerly.co.kr/comments/88486
📗 NestJS로 REST API 찍어내기: https://careerly.co.kr/comments/88984
📘 NestJS에서 로깅(logging)하기: https://careerly.co.kr/comments/89270
📙 NestJS 앱의 환경 설정: https://careerly.co.kr/comments/90498
📓 NestJS의 liveness/readiness 엔드포인트: https://careerly.co.kr/comments/91046

📔 가드(Guard)로 NestJS 앱 안전하게 지키기: https://careerly.co.kr/comments/91745

NestJS에서 API 버전 관리하기(Versioning)

www.daleseo.com

NestJS에서 API 버전 관리하기(Versioning)

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 1월 9일 오후 10:39

 • 

저장 27조회 3,895

댓글 2

    함께 읽은 게시물

    앱 개발 개척시대

    A

    ... 더 보기

    앱 개발 개척시대

    K리그 프로그래머

    앱 개발 개척시대

     • 

    저장 2 • 조회 793


    IT 회사의 업무에서, 지금까지는 디자이너와 특히 개발자가 병목이었는데, 대 AI 시대에는 기획자가 병목이 될 수도 있겠다. 조금이라도 규모가 있는 기업에서의 가장 큰 병목은 보통 의사결정자라는 것을 생각해보면 그렇다.


    즉, 실무보다 의사결정을 AI에게 맡기는 것이 병목을 해소할 수 있는 가장 확실한 방법이며, 그러므로 부장님과 사장님을 AI로 대체하는 것이야말로 인류의 번영을 위한 가장 빠른 지름길이다. (아님. 아니 맞나?!)

     • 

    저장 1 • 조회 2,187


    Longest Common Subsequence 자바스크립트 풀이

    ... 더 보기

    Longest Common Subsequence | 알고달레

    알고달레

    Longest Common Subsequence | 알고달레

    [광고] 다음 직무 채용 예정입니다.


    - 프러덕트/사업 기획 1인

    - 프러덕트 디자인 1인

    ... 더 보기

    Next.js 프로젝트를 AWS EKS에 배포하며 배운 것들

    ... 더 보기

    쿠버네티스를 활용한 클라우드 네이티브 데브옵스 | 존 어런들 - 교보문고

    product.kyobobook.co.kr

    쿠버네티스를 활용한 클라우드 네이티브 데브옵스 | 존 어런들 - 교보문고

     • 

    저장 21 • 조회 1,945


    <일이 많다> 스타트업의 CTO는 해야하는 일이 정말 많다. 어떤 때는 인프라를 다루기도 하고, 어떤 때는 플랫폼을 만들기도 하고, 어떤 때는 프론트엔드 개발을, 어떤 때는 백엔드 개발을, 어떤 때는 모바일 개발을 하기도 한다. 여러 사람을 채용할 수 있다면 좋겠지만, 작은 회사에서 채용이란 쉽지 않은 의사결정이다. <일 할 시간 벌기> 매니저가 해야 하는 일이 여러가지가 있는데, 주된 일 중 하나는 아무래도 미팅일 것이다. 의미있는 미팅도 있지만 당연히 그냥 들어가야만 하는 미팅도 존재하고, 내가 그 자리에 앉아있는 것만으로도 효과가 발생하는 미팅도 있다. 그러나 그렇게 하다보면 자연스럽게 실제 업무를 할 시간, 그러니까 내가 일을 할 시간이 부족해지는데 그런 케이스를 방지하기 위해 Block 일정을 만들어 둘 필요는 있다. <야근에 대해서> 나도 처음에 가장 못하던 일이 아닐까 싶은데, 디테일에 과도하게 매몰되다가 자연스럽게 야근을 하게 되었다. 예를 들어 2주 정도를 야근하면, 1주 정도는 그냥 내리 쉬어야만 했고, 그 뒤로 2주는 그에 대한 여파로 업무 효율이 떨어지는 식이 많았다. 단순히 체력적인 피로도 뿐만 아니라, 2주간의 야근으로 인한 정신적인 피로도가 잘 회복이 안되더라. 그래서 내가 야근한 건 2주였지만, 실제로는 3주를 손해본 거나 다름없었다. 간혹 일정이 급할 때 그렇게 할 때가 있기는 하지만, 그럼에도 만약 야근을 해야만 해결할 수 있는 문제가 있다면, 애초에 플래닝이 잘못된 건 아닐 지 고민해보면 좋겠다. 특히 매니저라면 더욱 그런 시야가 필요하다. '지금 당장 필요한 기능인 지' 체크해보는 게 의미가 있다고 생각한다. <신뢰 자산의 관리> 조직에서 신뢰 자산은 그 무엇보다 중요한 자산이라고 생각한다. 나와 팀원간의 신뢰, 나와 다른 매니저간의 신뢰, 경영진 사이의 신뢰 등 다양한 신뢰 관계를 잘 맺어두는 것이 업무의 효율을 높이는 데 큰 도움을 준다. 신뢰도가 낮아질 수록 조직은 불신을 기반으로 한 조직 관리를 하게 되는데, 그렇게 하게 될 경우 조직 구성원들의 만족도가 떨어지게 된다. 특히 조직에 대한 애정도가 높았던 구성원일 수록 더 그렇게 되는 듯 하다. 일을 잘 할 수 있는 인재가 신뢰를 받고 일을 잘 할 수 있게 만들어 주는 것이, 어떻게 보면 관리자의 주된 역할이라고 할 수 있다. 신뢰를 잃는 순간 모든 걸 잃는다.

     • 

    댓글 3 • 저장 37 • 조회 7,842