본문 바로가기
카테고리 없음

NVM 이란 ( Node Version Manager )

by techdebt 2025. 1. 26.
반응형

 

NVM이란

Node.js 버전 관리가 필요한 이유

개발을 하다 보면 프로젝트마다 다른 Node.js 버전이 필요한 상황이 자주 발생합니다. 예를 들어, 레거시 프로젝트는 Node.js 14를 사용하는데 새로운 Next.js 프로젝트는 Node.js 20이 필요할 수 있죠. 이런 상황에서 NVM이 해결책이 됩니다.

NVM의 이해와 특징

NVM(Node Version Manager)은 Python의 pyenv와 비슷한 역할을 하는 도구입니다.

python에는 PYENV가 있듯이 Node에는 NVM이 있고 개발자가 여러 버전의 Node.js를 쉽게 설치하고 전환할 수 있게 해주며, 프로젝트별로 독립적인 Node.js 환경을 구성할 수 있습니다.

가장 큰 장점은 프로젝트 요구사항에 따라 Node.js 버전을 자유롭게 전환할 수 있다는 것입니다. 또한 root 권한 없이도 Node.js를 설치하고 관리할 수 있어 보안 측면에서도 유리합니다.

NVM의 주요 장점

  • 여러 Node.js 버전을 동시에 설치 가능
  • 프로젝트별로 다른 Node.js 버전 사용 가능
  • 버전 전환이 쉬움
  • 권한 문제 없이 Node.js 설치/관리 가능
  • linux나 macOS등 다양한 운영체제를 지원.

NVM 설치 및 설정 방법

NVM 설치는 간단한 스크립트 실행으로 가능합니다. 하지만 제대로 된 설정을 위해서는 몇 가지 추가 단계가 필요합니다:

 

  NPM 설치 및 설정

● NVM 설치 스크립트 다운 및 실행
( root 권한으로 진행 권장 )

# NVM 설치 스크립트 다운로드 및 실행
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
# 성공
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 15916  100 15916    0     0  33714      0 --:--:-- --:--:-- --:--:-- 33791
=> nvm is already installed in /root/.nvm, trying to update using git
=> => Compressing and cleaning up git repository

=> nvm source string already in /root/.bashrc
=> bash_completion source string already in /root/.bashrc
=> Close and reopen your terminal to start using nvm or run the following to use it now:

 

● NVM 환경 변수 설정
( ashrc 에 환경변수 설정을 통해 사용자 세션의 일관성 및 편리하게 환경 설정을 이용하기 위해서 입니다. )

# bashrc 위치로 이동
cd ~

# bash 수정
vi .bashrc

# 다음 내용 추가
export NVM_DIR="/apps/node/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  

# 환경변수 적용
source ~/.bashrc

# 최신 LTS 버전의 Node.js 20 설치
nvm install 20

# 설치된 버전을 기본으로 설정
nvm alias default 20

# Node.js 20 사용
nvm use 20

# 설치확인
node --version  # v20.x.x 출력
# 결과 -> v20.18.0
npm --version   # npm 버전 확인
# 결과 -> 10.8.2

 

※ 주의 사항

  NVM을 통해 설치한 Node.js는 시스템 전역이 아닌 사용자 환경에 설치해야 합니다.

  - 시스템 전역 설치: 모든 사용자가 접근 가능, root 권한 필요

   - NVM 설치: 특정 사용자만 접근 가능, root 권한 불필요

● 새 터미널을 열 때마다 nvm use 명령어를 실행해야 합니다.

   - 기본적으로 bashrc에 버전을 명시해 놨지만, 다른 버전을 사용하고 싶다면 명령어를 실행하시면 됩니다.

● 프로젝트에서 특정 Node.js 버전을 강제하려면, .nvmrc 파일을 사용하면 됩니다.

 

프로젝트별 버전 관리 전략

실무에서는 .nvmrc 파일을 통해 프로젝트의 Node.js 버전을 명시적으로 관리하는 것이 좋습니다. 이는 팀 멤버들이 동일한 버전을 사용하도록 보장합니다.

 

 ex)

# 프로젝트 루트에 .nvmrc 파일 생성

# 특정 버전 지정 

echo "20.9.0" > .nvmrc

# 또는

echo "lts/*" > .nvmrc

# 최신 LTS 버전 사용

 

# 자동으로 해당 버전 사용

nvm use

 

# 프로젝트 예시

/apps/myproject/

├── .nvmrc # Node.js 버전 지정

├── package.json

└── src/

 

주의사항과 모범 사례

NVM을 사용할 때 몇 가지 주의해야 할 점이 있습니다:

  1. 시스템 전역 설치 vs NVM 설치의 차이점을 이해해야 합니다
  2. 새 터미널 세션에서는 명시적으로 nvm use 명령을 실행해야 할 수 있습니다
  3. CI/CD 환경에서는 .nvmrc 파일을 통한 버전 관리가 특히 중요합니다

이러한 도구들을 이해하고 적절히 활용하면 Node.js 기반 프로젝트의 개발 환경을 훨씬 효율적으로 관리할 수 있습니다. 특히 Next.js와 같은 최신 프레임워크를 사용할 때는 정확한 Node.js 버전 관리가 프로젝트의 성공에 매우 중요합니다.