Node.JS를 설치하는 방법에는 2가지가 있습니다. 여기에서는 NVM을 사용해야 하는 이유를 알려줍니다.

  • 공식적인 배포 방법을 통해 설치하기
  • NVM을 통해 설치하기

시작하기 전에: NVM을 사용해야 하는 이유

NVM과 같은 버전 매니저를 왜 사용해야 할까요? 저희가 사용할 Node.JS의 버전은 하나가 아닐까요? 하지만 개발 환경과 프로덕션 모두 저는 NVM을 권장하고 있습니다. 이유를 뽑자면:

  • Node.JS의 다른 버전을 설치하는데에 수고가 적다.
  • 시스템에 깔끔하게 설치하고 제거할 수 있다.

Node.JS를 설치하고 사용데에 있어서 정말로 간편하게 버전을 변경할 수 있다는 것은 정말로 좋은 기능입니다. 그 이유는 Node.JS라는 프로그래밍 언어는 릴리즈 주기가 다른 언어에 비해서 많이 빠른 편이고 비록 레거시 메서드가 꽤 오랜 기간 유지된다고는 하나 개발을 하다보면 결과적으로 호환되지 않는 패키지가 나타나기 마련입니다. gulp이나 erlpack 등과 같은 패키지같이 말이죠.

이를 방지하고 쉽게 Node.JS의 버전을 변경하기 위해서 NVM을 사용합니다. NVM은 기본적으로 Linux/UNIX 환경에서 지원되는 소프트웨어이고 Windows의 경우에는 별도의 포팅된 버전이 출시되어 있습니다.

NVM 설치하기

Linux/UNIX

공식 NVM 저장소에서는 친절하게 쉬운 설치 방법을 소개하고 있습니다.

nvm-sh/nvm
Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions - nvm-sh/nvm
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash

간단히 명령어 하나면 NVM이 여러분의 시스템에 쏘옥 설치된 것이나 마찬가지입니다. 단, NVM은 유저 디렉터리에 설치되기 때문에 사용자마다 다르게 설정해주어야 합니다.

Windows

Windows 버전의 경우에는 Windows를 위한 버전이 존재합니다.

coreybutler/nvm-windows
A node.js version management utility for Windows. Ironically written in Go. - coreybutler/nvm-windows

https://github.com/coreybutler/nvm-windows/releases

위 링크에서 시스템 아키텍쳐에 맞는 버전을 설치해주시면 됩니다.

NVM 사용하기

NVM을 사용하기 위해서 기본적인 것들을 서술해보았습니다.

설치 가능한 Node.JS 버전 보기

Linux와 Windows 버전 간 약간의 차이점이 있으니 주의해주세요. 먼저 Linux는 아래 명령을 통해서 어떤 버전을 사용할 수 있는지 확인 가능합니다. 여러 줄에 걸쳐서 줄 마다 사용가능한 버전을 볼 수 있으니 출력을 grep 명령으로 잇는다면 더욱 쉽게 찾으실 수 있습니다.

# List all available versions
nvm ls-remote

# List all available versions which major version is 10
nvm ls-remote | grep v10

Windows의 경우에는 더욱 간편합니다. 아래 명령어 하나로 정리된 표를 볼 수 있게 됩니다.

nvm list available

특정 Node.JS 버전 설치하기

이제 어떤 버전을 설치할지 결정했으니 설치를 할 시간입니다. Linux와 Windows 모두 현재 설치된 버전이 없을 경우 처음 설치하는 버전이 자동으로 활성화되게 됩니다. 두 버전 모두 install 명령으로 설치할 수 있습니다.

# Install version v10.20.1
nvm install 10.20.1

특정 Node.JS 버전 활성화하기

중간에 다른 버전을 사용하고 싶다면 단순히 use 명령으로 해결이 가능합니다. 만약 설치하지 않으셨다면 미리 설치해야 합니다.

# Install version v12.16.3
nvm install 12.16.3

# Activate it!
nvm use 12.16.3

+ alpha?

몇 가지 더 끄적여보자면 글로벌로 설치된 패키지(대표적으로 PM2)나 Yarnpkg 등은 Node.JS 버전을 변경했다고 제거되거나 다시 설치되지 않습니다. 그 이유는 NVM은 기본적으로 symlink를 기반으로 작동하기 때문입니다. 결과적으로 Node.JS의 Binary 경로만 바꾸어주는 역할을 하기에 패키지에는 영향을 끼치지 않습니다.

여기까지 매우 단순히 NVM을 사용하는 방법에 대해 알아보았습니다. 사실 주된 기능이 버전 관리이기 때문에 많이 쓸 것은 없었네요. 끝입니다.