JavaScript 개발자라면 누구나 한 번쯤은 들어봤을 이름, 바로 npm
과 nvm
입니다. 이 두 도구는 이름도 비슷하고 Node.js와 관련되어 있어서 자주 혼동되곤 하죠. 그러나 이 둘은 완전히 다른 목적과 역할을 가진 도구입니다.
이 글에서는 nvm
과 npm
의 차이점을 확실하게 구분하고, 실제 사용 시 어떤 점에서 nvm
이 더 유리한지에 대해 실무적인 관점에서 설명드리겠습니다.
npm과 nvm, 이름은 비슷하지만 전혀 다르다
항목 | npm | nvm |
---|---|---|
전체 명칭 | Node Package Manager | Node Version Manager |
목적 | Node.js 패키지 관리 (설치, 삭제, 업데이트 등) | Node.js 버전 관리 (다중 버전 전환 등) |
설치 대상 | 라이브러리, 유틸리티 등 Node.js 기반 모듈 | Node.js 실행 환경 자체 |
설치 위치 | 프로젝트 혹은 전역 | 시스템 혹은 사용자 계정 환경 |
주 사용처 | 프로젝트 패키지 관리 | 개발 환경 세팅 및 호환성 유지 |
npm은 무엇이고 언제 사용하는가?
npm의 주요 기능
- Node.js 모듈 설치 (
npm install express
) - 패키지 버전 관리 (
package.json
기반) - 글로벌 유틸리티 설치 (
npm install -g typescript
) - 스크립트 실행 (
npm run start
)
npm은 라이브러리를 설치하고 관리하는 도구입니다. 마치 안드로이드의 Play 스토어처럼, 우리가 개발에 필요한 다양한 기능을 다운로드 받아 활용하는데 쓰이죠.
프로젝트 중심의 도구
npm은 각 프로젝트별로 필요한 패키지를 설치하고 관리합니다. 예를 들어 React
, Vue
, Express
같은 프레임워크나 유틸리티 패키지를 프로젝트에 적용할 때 사용하죠.
nvm은 무엇이고 언제 사용하는가?
nvm의 핵심 기능
- Node.js 버전 설치/삭제
- Node.js 버전 전환 (
nvm use 14.19.0
) - 특정 프로젝트에 맞춘 Node 환경 구축
- 글로벌 환경과 충돌 없이 개발 환경 분리
개발 환경 전환의 핵심 도구
nvm은 Node.js 버전을 손쉽게 바꾸기 위한 도구입니다. 예를 들어 어떤 프로젝트는 Node 14버전에서 잘 작동하지만, 다른 프로젝트는 Node 18을 요구하는 경우가 많습니다. 이때 매번 Node.js를 삭제하고 다시 설치할 수는 없죠. 이럴 때 nvm
이 빛을 발합니다.
왜 nvm이 실무에서 더 중요한가?
Node.js의 하위 호환성 이슈
npm 패키지는 Node.js 버전에 따라 동작 여부가 달라지는 경우가 있습니다. 예를 들어, 특정 패키지는 Node 14에서만 작동하고, 최신 Node 20에서는 오류가 나는 경우가 있죠. 이때 nvm
을 활용하면 버전 전환을 통해 손쉽게 테스트할 수 있습니다.
테스트 및 디버깅의 유연성
프로젝트 유지보수 시 여러 Node 버전에서의 호환성 검증이 필요할 수 있습니다. nvm
을 쓰면 CLI 명령 한 줄로 손쉽게 버전을 전환해 테스트가 가능합니다.
팀 협업의 일관성 유지
팀 프로젝트에서 nvm
을 통해 특정 버전을 강제하면, 모든 팀원이 동일한 Node.js 버전 환경에서 작업할 수 있습니다. 이는 예기치 않은 오류를 줄이고 협업의 효율성을 높이는 데 중요한 요소입니다.
실무 예제: nvm vs npm 비교
상황: 어떤 프로젝트는 Node 14에서만 작동한다. 그런데 내 시스템에는 Node 20이 설치되어 있다.
npm만 사용하는 경우:
Node 20에서 실행 시 오류 발생. Node.js를 수동으로 제거하고 버전별로 다시 설치해야 함.nvm 사용하는 경우:
nvm install 14.19.0
→nvm use 14.19.0
→ 문제 해결 끝.
다른 프로젝트 돌아가려면nvm use 20.0.0
만 입력.
생산성 차이가 극명하게 드러나는 순간입니다.
nvm의 실질적인 장점 요약
- 여러 버전의 Node.js를 하나의 컴퓨터에서 관리 가능
- 특정 프로젝트 요구 사항에 따라 자유롭게 전환
- 시스템 전체에 영향 없이 개발 환경 분리 가능
- 새로운 Node 버전 테스트 환경으로도 활용 가능
- 팀 단위 개발 시 동일 환경 유지 가능
npm의 필수성은 여전하다
nvm이 환경 구성이라면, npm은 그 위에 구성되는 모든 생태계의 중심입니다.
npm이 없으면 React도, Vue도, Express도 설치할 수 없고, 빌드도, 테스트도 할 수 없습니다.
즉, npm은 필수, nvm은 효율을 위한 선택입니다. 그러나 그 선택이 결국 개발자의 시간을 얼마나 절약해주는지는 비교 불가능할 정도입니다.
nvm과 함께 쓰면 좋은 도구들
도구명 | 설명 |
---|---|
nvm-windows |
Windows 환경에서 nvm 대체 도구 |
corepack |
npm 외에도 yarn, pnpm 등을 설정하는 도구 |
.nvmrc |
프로젝트 별 기본 Node.js 버전 명시 파일 |
volta |
nvm + npm 통합 도구로 Windows와도 호환됨 |
자주 묻는 질문 (FAQs)
Q1. nvm과 npm은 함께 써야 하나요?
A: 네. nvm
은 Node.js 버전을 관리하고, npm
은 그 안에서 실행되는 패키지를 관리합니다. 둘은 서로 보완 관계입니다.
Q2. Windows에서도 nvm을 쓸 수 있나요?
A: Windows 전용 nvm-windows
버전이 존재합니다. 일반 Linux/macOS 버전과는 설치 방식이 다르지만 기능은 유사합니다.
Q3. nvm으로 설치한 Node는 시스템 전체에 영향 주지 않나요?
A: 주지 않습니다. nvm
은 사용자 환경만 조정하며, 시스템의 다른 프로그램에는 영향을 주지 않습니다.
Q4. Node.js를 nvm 없이 설치해도 되지 않나요?
A: 가능하지만, 여러 프로젝트를 관리해야 하거나, 다양한 버전을 테스트해야 할 때는 불편함이 큽니다.
Q5. nvm 사용 시 npm 설치가 별도로 필요한가요?
A: 아닙니다. Node.js를 설치하면 해당 버전에 맞는 npm
도 함께 설치됩니다.
Q6. nvm 사용법이 어렵지 않나요?
A: CLI 명령 몇 줄로 대부분의 작업이 가능하며, .nvmrc
파일을 활용하면 자동 전환도 지원됩니다.
결론! nvm은 선택이 아닌 필수에 가까워진다
npm
이 없는 Node.js 생태계는 상상하기 어렵습니다. 하지만 프로젝트가 많아지고, 팀원들과 협업하며, 다양한 버전 이슈를 겪다 보면 자연스럽게 nvm
의 필요성을 절실히 느끼게 됩니다.
환경 관리의 핵심 도구로서 nvm은 단순한 보조 도구가 아닌, 안정성과 생산성의 기반이라 할 수 있습니다.
따라서 당신이 더 나은 개발자가 되고 싶다면, 지금 바로 nvm
을 설치해보세요. 아마 며칠 지나지 않아 “왜 진작 안 썼을까” 싶을 겁니다.