이 영역을 누르면 첫 페이지로 이동
Coding Groot 블로그의 첫 페이지로 이동

Coding Groot

페이지 맨 위로 올라가기

Coding Groot

코딩 블로그

NestJS v8에서 v9으로 업그레이드 하는 법

  • 2022.10.05 19:24
  • Programming/NestJS
글 작성자: Coding Groot

최근에 NestJS v9의 Major Update가 있었다. REPL 기능이라든지 Swagger 업그레이드라든지 필요한 기능들이 있어서 업그레이드를 진행해보고자 했다. v9 업데이트에 관해서는 아래의 글에서 간단하게 참고할 수 있다.

https://trilon.io/blog/nestjs-9-is-now-available

 

NestJS v9 is now available

Today I am excited to announce the official release of Nest 9: A progressive Node.js framework for building efficient and enterprise-grade, server-side applications.

trilon.io

v9.0.0 PR은 https://github.com/nestjs/nest/pull/9588 이것이다.

v9으로 업그레이드하기 전에 마이그레이션 가이드(https://docs.nestjs.com/migration-guide)를 참고하자.

NestJS를 최신 버전으로 업그레이드 하는 법

예전 방식

예전에는 Nest CLI를 업그레이드하고 Nest CLI(nest update 명령어)를 통해 Nest관련 dependency를 업레이드하고 npm같은 패키지 매니저로 그 외의 dependency도 업그레이드하면 됐다.

하지만 안정성 문제로 NestJS v9부터 Nest CLI의 update 명령어가 없어졌다. 

업그레이드 하는 법

업그레이드라고 해봤자 적절하게 package.json(그리고 .lock 파일에)에 명시된 dependency를 높은 버전으로 업데이트해 주는 것이다. (업그레이드에 따른 버전이나 호환성이 깨지는 문제는 본인이 해결해야 한다.)

현재는 dependency 업그레이드를 npm이나 yarn같은 사용하는 패키지 매니저를 통해 하도록 안내하고 있다. 나는 yarn을 쓰고 있기 때문에 yarn 명령어로 업그레이드했다. 

yarn을 사용하고 있는 경우에는 다음의 명령어를 사용하면 된다.

yarn upgrade-interactive
  • --latest 옵션을 주면 package.json에 명시되어 있는 dependency 버전을 무시하고 최신 버전으로 업그레이드하도록 할 수 있다. 
  • 참고로 위 명령어를 입력하고 dependency를 검사하는데 오래 기다려야 하는지 몇 분 기다려야 할 수도 있다.

yarn upgrade-interactive 명령어는 yarn outdated와 yarn upgrade를 섞어놓은 버전이다. 그래서 만료된 패키지들을 둘러보고 원하는 패키지를 선택하여 업그레이드를 진행할 수 있다.

yarn upgrade-interactive를 실행하면 다음과 같이 모든 만료된 패키지들을 표시해준다. 보통 버전의 첫번째 숫자가 바뀌는 Major Update는 (X.0.0 -> Y.0.0) backward-incompatible하기 때문에 주의해서 업그레이드해야 한다. Minor Update(0.X.0 -> 0.Y.0)는 기본적으로 호환이 되지만 기능이 추가되는 것이고 Patch Update(0.0.X->0.0.Y)는 보통 기능적인 변화가 없는 선에서 작은 버그 수정나 패치를 했음을 말한다. 

친절하게 색으로 어떤 업데이트가 적용될 것인지 가독성 좋게 보여준다. 키보드 화살표 키로 이동하면서 업그레이드를 원하는 패키지에만 space를 눌러서 선택 및 선택 취소를 할 수 있다. 다 선택했으면 엔터를 눌러서 업그레이드를 진행하면 된다.  

space로 선택시 저렇게 원이 채워지면 선택했음을 보여준다.

Major Update(빨강)은 정말 주의하자. 개인적으로 뭐가 바뀌는지 모르고 딱히 업데이트에 대한 필요성이 없다면 차라리 안 하는 것이 낫다고 생각한다. 

어쨌든 선택을 완료하고 키보드의 Enter 키를 누르면 다음과 같이 업그레이드가 적용되기 시작한다.

업그레이드 진행중! dependency들이 업데이트되고 있닷.

업그레이드 끝!

업그레이드를 진행하고 package.json을 확인해보았다.

git vimdiff HEAD로 확인해본 package.json의 변경 사항

package.json과 .lock 파일을 보면 위와 같이 선택한 패키지들의 버전 업데이트가 이루어졌음을 확인할 수 있다.


Major Update는 뭔가 찝찝함을 끌고 가게된다. 아무리 마이그레이션 가이드를 참고해서 어디서 코드가 깨질지 예측하고 어디서 업데이트가 이루어졌는지 알더라도 문제가 발생하지 않을 것이라 확신할 수 없기 때문이다.

업데이트가 완료됐다면 테스트는 필수닷! 

반응형

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • NestJS에 NewRelic 연동하는 법

    NestJS에 NewRelic 연동하는 법

    2022.07.18
다른 글 더 둘러보기

정보

Coding Groot 블로그의 첫 페이지로 이동

Coding Groot

  • Coding Groot의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 태그
  • 방명록
  • 소개
  • 블로그 저작권

카테고리

  • 분류 전체보기 (186)
    • Git (23)
      • Git Tutorial (9)
      • Git Note (7)
      • Git Lecture (7)
    • Programming Language (1)
      • C (2)
      • C Sharp (5)
      • Java (4)
      • JavaScript (7)
      • Julia (5)
      • Python (4)
    • Programming (8)
      • Algorithm (2)
      • Compiler (5)
      • Data Structure (0)
      • Web (12)
      • NestJS (2)
    • DevOps, Infra (36)
      • Apple (6)
      • Cloud (15)
      • Database (1)
      • Network (4)
      • Linux (8)
    • Game Programming (11)
      • Unity Tutorial (5)
      • Unity Note (6)
    • Hardware Design (1)
      • Digital Circuit (1)
    • Note (20)
      • Coffee (2)
      • Retrospect (15)
      • Reading List (14)
    • Mathematics (1)

최근 글

인기 글

댓글

공지사항

아카이브

태그

  • aws
  • tutorial
  • javascript
  • 서평
  • git
  • Github
  • 회고
  • 한빛미디어
  • 전체 보기…

정보

Coding Groot의 Coding Groot

Coding Groot

Coding Groot

블로그 구독하기

  • 구독하기
  • RSS 피드

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기

나의 외부 링크

  • GitHub
  • SlideShare
  • 유니티 2020 수업
  • TIL Blog
  • 모도코

방문자

  • 전체 방문자
  • 오늘
  • 어제
Powered by Tistory / Kakao. Copyright © Coding Groot.

티스토리툴바