NVM 설치하기
레거시 프로젝트는 Node 16, 신규 프로젝트는 Node 20을 요구하는데, 매번 Node.js를 재설치해야 할까요?
NVM(Node Version Manager) 은 하나의 시스템에서 여러 버전의 Node.js를 설치하고 자유롭게 전환할 수 있게 해주는 도구입니다.
NVM이 필요한 이유
프로젝트마다 요구하는 Node.js 버전이 다른 경우가 많습니다. 예를 들어 레거시 프로젝트는 Node 16을, 신규 프로젝트는 Node 20을 사용할 수 있습니다. Node.js를 직접 설치하면 시스템 전체에 하나의 버전만 유지되므로, 프로젝트를 전환할 때마다 Node.js를 재설치해야 합니다.
NVM을 사용하면 다음과 같은 이점이 있습니다.
| 장점 | 설명 |
|---|---|
| 다중 버전 관리 | nvm install로 여러 버전을 설치하고, nvm use로 즉시 전환합니다 |
| ** 프로젝트별 버전 고정** | .nvmrc 파일로 프로젝트에 필요한 Node.js 버전을 명시할 수 있습니다 |
| ** 권한 문제 해소** | 홈 디렉터리에 설치되므로 sudo 없이 글로벌 패키지를 관리할 수 있습니다 |
설치 방법
** 사전 조건 **: Homebrew가 설치되어 있어야 합니다. 설치 방법은 Homebrew 설치하기를 참고하세요.
1. Homebrew로 NVM 설치
brew install nvm
2. .zshrc 환경 변수 설정
NVM이 정상적으로 동작하려면 쉘 시작 시 NVM 스크립트를 로드해야 합니다. ~/.zshrc 파일에 아래 내용을 추가합니다.
# NVM 디렉터리 생성 (최초 1회)
mkdir -p ~/.nvm
# .zshrc에 NVM 설정 추가
vi ~/.zshrc
~/.zshrc 파일에 아래 내용을 추가합니다.
# NVM 설정
export NVM_DIR="$HOME/.nvm"
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh" # nvm 로드
[ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" # nvm 자동완성 로드
** 각 줄이 하는 일 **:
NVM_DIR: NVM이 Node.js 버전들을 저장할 디렉터리를 지정합니다.- 첫 번째
[ -s ... ]: Homebrew로 설치된 NVM 스크립트가 존재하면 로드합니다. 이 스크립트가nvm명령어를 사용할 수 있게 만들어 줍니다.- 두 번째
[ -s ... ]: NVM 명령어의 탭 자동완성 기능을 활성화합니다.
설정을 저장한 후 터미널을 새로 열거나 아래 명령어를 실행합니다.
source ~/.zshrc
3. 설치 확인
nvm -v
0.40.1
버전 번호가 출력되면 정상적으로 설치된 것입니다.
자주 사용하는 명령어
| 명령어 | 설명 |
|---|---|
nvm install <버전> | 특정 버전의 Node.js를 설치합니다 (예: nvm install 20) |
nvm install --lts | 최신 LTS 버전을 설치합니다 |
nvm use <버전> | 현재 쉘에서 사용할 Node.js 버전을 전환합니다 |
nvm alias default <버전> | 새 터미널을 열 때 기본으로 사용할 버전을 지정합니다 |
nvm ls | 설치된 Node.js 버전 목록을 확인합니다 |
nvm ls-remote | 설치 가능한 모든 Node.js 버전을 확인합니다 |
nvm current | 현재 사용 중인 Node.js 버전을 확인합니다 |
사용 예시
# Node.js 20 LTS 설치
nvm install 20
# Node.js 18로 전환
nvm use 18
# 기본 버전을 20으로 설정
nvm alias default 20
# 현재 버전 확인
node -v
주의할 점
새 터미널에서 nvm: command not found
~/.zshrc에 NVM 스크립트 로드 설정을 추가하지 않으면, 터미널을 새로 열 때마다 nvm 명령어를 찾지 못합니다. source ~/.zshrc를 실행하거나, 파일에 설정이 정상 추가되었는지 확인합니다.
nvm use는 현재 셸에서만 적용
nvm use 18로 버전을 전환해도 새 터미널에서는 기본 버전으로 돌아갑니다. 영구적으로 변경하려면 nvm alias default 18로 기본 버전을 지정해야 합니다.
정리
| 항목 | 설명 |
|---|---|
| 설치 | brew install nvm + .zshrc 설정 추가 |
| 버전 설치 | nvm install <버전> 또는 nvm install --lts |
| 버전 전환 | nvm use <버전> (현재 셸만) |
| 기본 버전 설정 | nvm alias default <버전> (영구) |
| 프로젝트별 고정 | .nvmrc 파일 사용 |