터미널에서 노드 버전 한 줄로 바꾸는 자유
프로젝트마다 다른 노드 버전을 요구할 때, 터미널에 한 줄만 치면 즉시 원하는 버전으로 전환됩니다. 여러 버전을 동시에 설치해 두고 필요할 때만 꺼내 쓰는 방식입니다. nvm은 노드.js의 버전 관리 도구로, 셸 환경에서 직접 동작하는 스크립트입니다.
버전 전환의 실제 흐름
nvm install 24를 치면 최신 노드 24버전이 설치되고, nvm use 22를 치면 22버전으로 즉시 전환됩니다. 이 과정에서 시스템의 기본 노드 설치에 영향을 주지 않으며, 사용자 계정 내에서만 동작합니다. 각 셸 세션은 독립적으로 버전을 관리하므로, 한 터미널에서 20버전을 쓰고 다른 터미널에서 22버전을 쓰는 것도 가능합니다.
프로젝트별 버전 고정과 LTS 지원
프로젝트 폴더에 .nvmrc 파일을 두면, 해당 폴더로 이동할 때 자동으로 지정된 버전이 활성화됩니다. 이는 팀원들이 동일한 노드 버전으로 작업하도록 돕는 표준적인 방법입니다. 장기 지원(LTS) 버전도 lts/* 또는 lts/argon 같은 별칭으로 쉽게 참조할 수 있습니다.
설치 환경과 요구 사항
nvm은 POSIX 호환 셸인 bash, zsh, sh, dash, ksh에서 동작하며, Unix, macOS, Windows WSL 환경을 지원합니다. 설치 스크립트를 실행하면 ~/.nvm 디렉토리에 저장소가 클론되고, 셸 프로필 파일에 자동 로드 설정이 추가됩니다. macOS에서는 Xcode 커맨드 라인 도구가 필요하며, Linux에서는 C++ 컴파일러가 소스 빌드 시 요구될 수 있습니다. Fish 셸은 공식적으로 지원하지 않으며, Windows에서는 WSL 또는 Git Bash를 통해 사용해야 합니다.
사용 전 확인 사항
nvm은 사용자 단위 도구이므로, 시스템 전역의 노드 설치와 혼용 시 버전 불일치가 생길 수 있습니다. 기존에 sudo를 사용해 전역 패키지를 설치했다면, nvm 사용 시에는 sudo 없이 npm install -g로 설치해야 합니다. ~/.npmrc 파일에 prefix 설정이 있으면 nvm과 충돌하므로 제거해야 합니다. Homebrew를 통한 nvm 설치 공식적으로 지원하지 않으므로, 기존에 설치했다면 제거 후 공식 스크립트로 재설치해야 합니다.