1) 개요 및 정의
NVM(Node Version Manager) 은 여러 Node.js 버전을 손쉽게 설치하고 전환할 수 있는 CLI 도구입니다.
프로젝트마다 Node 버전이 다르더라도 충돌 없이 관리할 수 있습니다.
2) 왜 필요한가?
- 프로젝트별 Node 버전 충돌 방지
- 빌드 환경 테스트 시 빠른 버전 전환
- 글로벌 패키지와 격리된 안전한 환경 구성
💡 실무에서는 React, Vue, NestJS 같은 프레임워크별 Node 버전 호환 문제를 쉽게 해결하기 위해 필수입니다.
3) Intel vs Apple Silicon 차이
| 항목 | Intel Mac | Apple Silicon (M1/M2/M3) |
|---|---|---|
| 아키텍처 | x86_64 | arm64 |
| 설치 방식 | 동일 | 동일 (Rosetta 불필요) |
| Node 빌드 | x64 | ARM 자동 선택 |
💡 Apple Silicon에서는 NVM이 자동으로 ARM용 Node를 설치합니다.
4) 설치 전 확인
기본 쉘은 zsh이며, 설정 파일은 ~/.zshrc 입니다.
5) NVM 설치
방법 A – curl (추천)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
방법 B – wget
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
⚠️ 설치 후 Terminal을 새로 열거나, 아래처럼 프로필을 다시 로드해야 명령이 동작합니다.
6) 환경 변수 등록
~/.zshrc 파일에 아래 내용을 추가합니다.
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
변경 내용 적용:
source ~/.zshrc
7) Node.js 설치 및 전환
# LTS 버전 설치
nvm install --lts
# 최신 버전 설치
nvm install node
# 특정 버전 설치
nvm install 18.17.0
# 버전 전환
nvm use 18
node -v
8) 자동 전환 (폴더 이동 시)
autoload -U add-zsh-hook
load-nvmrc() {
if [[ -f .nvmrc && -r .nvmrc ]]; then
nvm use > /dev/null
fi
}
add-zsh-hook chpwd load-nvmrc
load-nvmrc
💡 프로젝트 루트에 .nvmrc 파일을 만들어두면, 폴더 이동 시 자동으로 Node 버전이 전환됩니다.
9) 요약
| 항목 | 내용 |
|---|---|
| 설치 | `curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh |
| 프로필 | ~/.zshrc 수정 |
| Node 설치 | nvm install --lts |
| 전환 | nvm use <버전> |
| 기본 지정 | nvm alias default <버전> |
✅ 정리:
NVM은 Mac Silicon에서도 완벽히 동작하며,
프로젝트별 Node 버전 격리와 전환을 단 몇 초 만에 처리합니다.
답글 남기기