새 Node.js 프로젝트를 시작하려는데 기존 버전과 충돌이 나거나, 프로젝트마다 다른 Node.js 버전이 필요해 매번 버전을 바꾸기 귀찮으셨을 겁니다.
이런 문제는 Node.js 버전 관리의 부재로 인해 발생하는 흔한 개발자들의 고충입니다.
이 글에서는 맥(Mac) 환경에서 NVM(Node Version Manager)을 이용해 여러 Node.js 버전을 손쉽게 설치하고 전환하며 관리하는 모든 과정을 단계별로 설명합니다.
– NVM이 왜 필요한지 이해하고 맥에 설치합니다.
– 다양한 Node.js 버전을 효율적으로 설치하고 전환하는 방법을 배웁니다.
– 프로젝트별 Node.js 버전 고정으로 충돌 없이 작업 환경을 구축합니다.
맥에서 여러 Node.js 버전을 효율적으로 관리하려면 NVM을 설치하고 활용해 손쉽게 버전 전환 및 관리가 가능합니다.
NVM, 왜 필요할까요?
대부분의 Node.js 프로젝트는 특정 버전에 의존합니다. 예를 들어, 레거시 프로젝트는 Node.js 12 버전을, 새로운 프로젝트는 Node.js 18 버전을 요구하는 경우가 흔합니다. 하나의 Node.js 버전만 설치된 환경에서는 이러한 요구사항을 충족하기 어렵고, 매번 버전을 수동으로 변경하거나 재설치하는 것은 상당한 시간 낭비로 이어집니다.
NVM(Node Version Manager)은 이러한 문제를 해결하기 위한 강력한 도구입니다. NVM을 사용하면 여러 Node.js 버전을 한 시스템에 동시에 설치하고, 필요에 따라 손쉽게 전환할 수 있습니다. 각 프로젝트가 독립된 Node.js 환경에서 작동하도록 함으로써, 버전 충돌로 인한 오류를 미연에 방지할 수 있습니다.
결과적으로 개발자는 버전 호환성 문제에 대한 걱정 없이, 오직 개발 자체에만 집중할 수 있게 됩니다. 초기 설정에 단 10분 정도만 투자하면, 장기적으로 수많은 시간과 에너지를 절약할 수 있습니다.
NVM 외에도 fnm, Volta와 같은 다른 Node.js 버전 관리 도구들이 존재합니다. NVM은 가장 널리 사용되고 안정성이 검증된 도구로, 대부분의 개발 환경에 적합합니다.
Photo by Maksim Karpiuk on Pexels
맥에 NVM 설치하기
NVM을 설치하기 전, 맥에 Xcode Command Line Tools와 Homebrew가 설치되어 있는지 확인하는 것이 좋습니다. 이 두 가지는 맥 개발 환경의 필수 요소이며, NVM 설치 과정에 필요한 의존성을 제공합니다. 대부분의 경우 이미 설치되어 있을 테지만, 혹시 모를 상황에 대비하여 확인해 봅니다.
NVM 설치는 공식 스크립트를 통해 이루어지며, 설치 후에는 쉘(Shell) 환경 파일에 NVM을 로드하는 설정을 추가해야 합니다. 이 과정은 일반적으로 5분 이내로 완료됩니다. 아래 단계에 따라 진행하시면 됩니다.
- Xcode Command Line Tools 설치 — 터미널에
xcode-select --install을 입력하여 설치합니다. 이미 설치되어 있다면 “command line tools are already installed” 메시지가 출력됩니다. - Homebrew 설치 확인 — 터미널에
brew --version을 입력하여 Homebrew가 설치되어 있는지 확인합니다. 설치되어 있지 않다면 Homebrew 공식 웹사이트에서 안내하는 설치 명령어를 사용하여 먼저 설치합니다. - NVM 설치 스크립트 실행 — 터미널에 다음 명령어를 입력하여 NVM을 설치합니다.
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
(버전 0.39.7은 현재 기준으로 안정적인 최신 버전이며, NVM GitHub 저장소에서 최신 버전을 확인할 수 있습니다.) - 환경 변수 설정 — 설치 스크립트가 완료되면, NVM이 제대로 작동하도록 쉘 환경 파일을 업데이트해야 합니다. 사용 중인 쉘에 따라
~/.bashrc,~/.zshrc, 또는~/.profile파일 중 하나에 다음 내용을 추가합니다. 보통 스크립트가 자동으로 추가해 주지만, 수동으로 확인하거나 추가할 수 있습니다.export NVM_DIR="$HOME/.nvm"[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion - 쉘 재시작 또는 소스 적용 — 변경사항을 적용하기 위해 터미널을 완전히 닫았다가 다시 열거나,
source ~/.zshrc(사용하는 쉘에 따라) 명령어를 입력합니다. - NVM 설치 확인 — 터미널에
nvm --version을 입력하여 NVM 버전 정보가 올바르게 출력되는지 확인합니다. 버전 번호가 나타나면 성공적으로 설치된 것입니다.
환경 변수 설정 시 어떤 쉘을 사용하는지 정확히 확인해야 합니다. 맥의 기본 쉘은 Zsh(
~/.zshrc)이며, Bash를 사용하는 경우(~/.bashrc)도 있습니다. 잘못된 파일에 추가하면 NVM이 로드되지 않을 수 있습니다.
Photo by Ebenezer Idowu on Pexels
Node.js 버전 설치 및 관리 핵심 명령어
NVM이 설치되었다면, 이제 Node.js 버전을 자유롭게 설치하고 전환할 수 있습니다. NVM이 제공하는 몇 가지 핵심 명령어만 알면 Node.js 버전 관리는 매우 간단해집니다. 이 명령어들을 통해 3가지 이상의 Node.js 버전을 손쉽게 전환하며 사용할 수 있습니다.
다음은 개발 과정에서 가장 자주 사용하게 될 4가지 핵심 명령어입니다. 이 명령어들을 숙지하면 대부분의 버전 관리 시나리오에 대응할 수 있습니다.
- Node.js 설치 —
nvm install <버전>
특정 Node.js 버전을 설치합니다. 예를 들어,nvm install 18은 최신 Node.js 18 버전을 설치하며,nvm install 16.14.0처럼 특정 패치 버전을 지정할 수도 있습니다. LTS(Long Term Support) 버전을 설치하려면nvm install --lts또는nvm install node(가장 최신 안정 버전)를 사용합니다. - Node.js 버전 사용 —
nvm use <버전>
현재 터미널 세션에서 사용할 Node.js 버전을 전환합니다. 예를 들어,nvm use 18을 입력하면 Node.js 18 버전이 활성화됩니다. 시스템에 설치된 Node.js를 사용하려면nvm use system을 입력합니다. - 설치된 버전 목록 확인 —
nvm ls
현재 시스템에 NVM으로 설치된 모든 Node.js 버전 목록을 보여줍니다. 현재 사용 중인 버전은 초록색으로 표시됩니다. 이를 통해 어떤 버전들이 설치되어 있는지 한눈에 파악할 수 있습니다. - Node.js 버전 삭제 —
nvm uninstall <버전>
더 이상 필요 없는 Node.js 버전을 삭제합니다. 예를 들어,nvm uninstall 14를 입력하면 Node.js 14 버전이 삭제됩니다.
자주 사용하는 Node.js 버전을 기본(default)으로 설정할 수 있습니다. 예를 들어,
nvm alias default 18 명령어를 사용하면 새 터미널을 열 때마다 자동으로 Node.js 18 버전이 적용됩니다.
프로젝트별 Node.js 버전 자동 적용 (.nvmrc)
각 프로젝트마다 다른 Node.js 버전을 수동으로 전환하는 것이 번거롭게 느껴질 수 있습니다. NVM은 이러한 불편함을 해소하기 위해 `.nvmrc` 파일을 통한 자동 버전 적용 기능을 제공합니다. 이 기능을 활용하면 프로젝트 디렉토리로 이동할 때마다 NVM이 해당 프로젝트에 필요한 Node.js 버전을 자동으로 인식하고 적용해 줍니다.
`.nvmrc` 파일은 프로젝트의 루트 디렉토리에 위치하며, 파일 안에는 해당 프로젝트에서 사용할 Node.js 버전 정보만 명시하면 됩니다. 이 파일을 사용하면 팀원들 간에도 동일한 Node.js 개발 환경을 쉽게 공유할 수 있어 일관성을 유지하는 데 큰 도움이 됩니다.
- `.nvmrc` 파일 생성 — 프로젝트의 루트 디렉토리(예:
~/Projects/my-project/)에.nvmrc라는 이름의 파일을 생성합니다. - 버전 지정 — 생성한
.nvmrc파일 안에 해당 프로젝트에서 사용할 Node.js 버전을 한 줄로 입력합니다. 예를 들어,16.14.0
또는 최신 LTS 버전을 지정하고 싶다면lts/hydrogen(현재 Node.js 18 LTS 코드명)
또는lts/*(가장 최신 LTS) - `nvm use` 실행 — 이제 해당 프로젝트 디렉토리로 이동하여 터미널에
nvm use만 입력하면, NVM이 `.nvmrc` 파일에 명시된 Node.js 버전을 자동으로 찾아서 적용합니다. 버전이 설치되어 있지 않다면, NVM은 해당 버전을 설치할 것인지 묻거나,nvm install명령어를 통해 쉽게 설치할 수 있도록 안내합니다.
`.nvmrc` 파일에 명시하는 버전은 NVM이 인식할 수 있는 형식이어야 합니다. 특정 패치 버전(예:
18.17.1), 주 버전(예: 16), 또는 LTS 코드명(예: lts/iron)을 사용할 수 있습니다. 정확한 명시 방법을 NVM 공식 문서를 참고하는 것이 좋습니다.
맥에서 NVM을 사용하면 Node.js 버전 충돌 문제로부터 자유로워지고, 다양한 프로젝트 환경에 유연하게 대응할 수 있습니다.
설치부터 버전 관리, 그리고 프로젝트별 자동 적용까지, NVM은 개발자의 생산성을 획기적으로 향상시키는 필수 도구입니다.
지금 바로 적용해 보세요.
- NVM GitHub 저장소 — NVM의 공식 문서와 최신 설치 방법을 확인할 수 있습니다.
- Node.js LTS 버전 선택 가이드 — 어떤 Node.js LTS 버전을 선택하는 것이 좋을지 안내하는 공식 가이드입니다.
동영상으로 보는 맥 NVM Node.js 버전 관리 가이드
글로 충분하지 않다면 관련 영상을 함께 보세요. 클릭하면 YouTube에서 검색 결과로 이동합니다.
자주 묻는 질문
Q. NVM이 정확히 무엇이며, 왜 Node.js 버전을 관리하는 데 필요한가요?
A. NVM(Node Version Manager)은 Node.js 버전을 효율적으로 관리해주는 도구입니다. 프로젝트마다 요구하는 Node.js 버전이 다를 때, NVM을 사용하면 여러 버전을 쉽게 설치하고 필요에 따라 전환하며 작업할 수 있어 개발 환경 관리에 매우 유용합니다.
Q. 이미 Node.js가 설치되어 있는데 NVM을 설치해도 괜찮을까요? 기존 설치와 충돌은 없나요?
A. 네, NVM 설치 전에 기존에 전역적으로 설치된 Node.js를 제거하는 것이 권장됩니다. 기존 설치가 NVM이 관리하는 Node.js 경로와 충돌을 일으킬 수 있기 때문입니다. 가이드에서 기존 Node.js 제거 방법을 확인하여 깔끔한 환경을 구축하는 것이 좋습니다.
Q. NVM을 사용하여 Node.js 버전을 설치하고 여러 버전 간에 전환하는 방법이 궁금합니다.
A. NVM을 이용한 Node.js 버전 설치는 `nvm install [버전]` 명령어로 간단합니다. (예: `nvm install 18` 또는 `nvm install 16.14.0`) 설치된 버전 간 전환은 `nvm use [버전]` 명령어로 쉽게 할 수 있으며, 특정 버전을 기본값으로 설정하려면 `nvm alias default [버전]`을 사용하면 됩니다.
Q. NVM으로 설치된 Node.js 버전별로 npm 패키지들은 어떻게 관리되나요?
A. NVM은 각 Node.js 버전별로 독립적인 npm 패키지 환경을 제공합니다. 특정 Node.js 버전을 `nvm use`로 활성화하면, 해당 버전에 맞는 npm이 자동으로 사용되며, 이때 설치하는 전역 패키지들은 그 버전에 종속됩니다. 따라서 프로젝트마다 다른 Node.js 버전과 패키지 세트를 깔끔하게 유지할 수 있습니다.
