Node.js와 버전 관리 도구, 입문자 기준으로 정리
Node.js가 무엇인지, 왜 여러 버전을 오갈 필요가 생기는지, 그리고 nvm 같은 버전 관리 도구가 어떤 역할을 하는지 입문자 눈높이로 정리했습니다.
왜 필요한가 · 프로젝트마다 요구하는 Node.js 버전이 다를 수 있어, 하나의 버전만 깔아 두면 나중에 충돌이 생기기 쉽기 때문입니다.
누구에게 · Node.js라는 말은 들어봤지만 버전 관리가 왜 필요한지 아직 와닿지 않는 입문자
읽고 나면 · Node.js가 무엇인지 이해하고, 버전 관리 도구가 어떤 문제를 풀어 주는지와 일반적인 사용 흐름을 파악할 수 있습니다.
핵심 요약
- Node.js는 자바스크립트를 브라우저 밖에서도 실행하게 해 주는 런타임입니다.
- 프로젝트마다 요구 버전이 달라질 수 있어, 버전을 쉽게 바꾸는 도구가 필요해집니다.
- nvm 같은 도구는 여러 버전을 깔아 두고 필요에 따라 전환하게 해 주며, 보통 LTS 버전을 기본으로 권합니다.
웹 관련 도구를 설치하다 보면 “Node.js가 필요합니다”라는 안내를 자주 만나게 됩니다. 막상 설치하려고 보면 버전이 여러 갈래로 나뉘어 있고, 어떤 글은 특정 버전을 콕 집어 요구하기도 합니다. 처음에는 “그냥 하나 깔면 되지 않나” 싶지만, 곧 버전 차이로 막히는 순간이 옵니다. 이 글은 그 배경을 입문자 눈높이에서 풀어 봅니다.
Node.js가 무엇인가
자바스크립트는 원래 웹 브라우저 안에서 동작하는 언어였습니다. Node.js는 그 자바스크립트를 브라우저 밖, 즉 일반 프로그램처럼 실행할 수 있게 해 주는 런타임입니다. 덕분에 자바스크립트로 서버를 돌리거나, 명령줄 도구를 만들거나, 개발에 필요한 각종 보조 도구를 실행할 수 있게 됩니다.
많은 개발 도구가 Node.js 위에서 동작하기 때문에, 웹 쪽을 다루다 보면 자연스럽게 설치를 요구받게 됩니다.
npm은 무엇인가
Node.js를 설치하면 보통 npm(Node Package Manager)이 함께 따라옵니다. npm은 다른 사람이 만들어 공개한 자바스크립트 코드 묶음(패키지)을 내려받아 프로젝트에 더해 주는 도구입니다. 직접 모든 기능을 만들지 않고, 이미 잘 만들어진 부품을 가져다 쓰는 셈입니다.
가장 자주 만나는 명령은 다음 정도입니다.
npm install
npm install <패키지이름>
npm run <스크립트이름>
npm install을 인자 없이 실행하면 프로젝트의 package.json에 적힌 의존성을 한꺼번에 내려받습니다. 여기서 중요한 점은, npm 자체도 Node.js 버전에 묶여서 함께 바뀐다는 것입니다. 즉 Node.js 버전을 전환하면 그에 딸린 npm 버전도 같이 따라오는 경우가 많습니다. 그래서 “버전 관리”는 사실상 Node.js와 npm을 한 묶음으로 다루는 일에 가깝습니다.
왜 버전 관리가 필요한가
Node.js는 꾸준히 새 버전이 나옵니다. 그런데 프로젝트나 도구마다 “이 버전 이상”, 혹은 “이 버전대에서 동작”처럼 요구 사항이 다를 수 있습니다. 컴퓨터에 한 가지 버전만 깔려 있으면, 어떤 프로젝트는 잘 되는데 다른 프로젝트는 버전이 맞지 않아 오류가 나는 상황이 생깁니다.
- 프로젝트 A는 비교적 최신 버전을 요구할 수 있습니다.
- 프로젝트 B는 더 낮은 버전대에서 동작하도록 맞춰져 있을 수 있습니다.
- 이 둘을 같은 컴퓨터에서 오가려면 버전을 바꿔 가며 써야 합니다.
이때 버전을 매번 지우고 다시 까는 것은 번거롭습니다. 그래서 여러 버전을 깔아 두고 필요할 때 전환하는 도구가 등장합니다.
✍️ 운영자 한마디
프로젝트마다 요구하는 Node 버전이 달라 한 번 환경이 꼬였던 적이 있습니다. 버전 매니저를 쓰기 시작하면서 그런 충돌 스트레스가 많이 줄었습니다.
버전 관리 도구의 개념
nvm처럼 흔히 쓰이는 버전 관리 도구는 “Node.js 버전을 골라서 깔고, 필요에 따라 바꿔 쓰게” 해 줍니다. 한 컴퓨터에 여러 버전을 보관해 두고 명령 한 줄로 지금 쓸 버전을 바꾸는 식입니다. 도구에 따라 이름과 사용법은 조금씩 달라도, 핵심 목적은 버전 전환을 쉽게 만드는 것으로 같습니다.
일반적인 사용 흐름은 대체로 다음과 같습니다.
- 사용할 버전을 설치합니다(보통 LTS 표시가 붙은 버전을 권장).
- 현재 사용할 버전을 선택해 전환합니다.
- 지금 어떤 버전이 활성화돼 있는지 확인합니다.
활성화된 버전이 무엇인지 확인할 때는 보통 아래 같은 명령을 씁니다.
node --version
nvm의 일반적인 사용 흐름
nvm을 예로 들면, 대체로 아래 같은 흐름으로 사용합니다. 명령 형태는 도구·시점에 따라 달라질 수 있으니 정확한 설치와 사용법은 공식 문서를 확인하세요.
nvm install --lts
nvm use --lts
nvm ls
nvm install --lts는 현재 LTS로 표시된 버전을 내려받아 설치합니다.nvm use --lts는 지금 셸에서 사용할 버전을 그 LTS로 전환합니다.nvm ls는 내 컴퓨터에 설치된 버전 목록과 지금 활성화된 버전을 보여 줍니다.
여기서 자주 헷갈리는 점은, 버전 전환이 지금 열려 있는 터미널 기준으로 적용된다는 것입니다. 새 터미널을 열거나 환경을 다시 켜면 기본 버전으로 돌아갈 수 있어, 의도한 버전이 맞는지 node --version으로 다시 확인하는 습관이 안전합니다.
시스템 직접 설치 vs 버전 관리 도구
Node.js를 쓰는 길은 크게 두 갈래입니다. 하나는 패키지 매니저(apt 등)나 설치 파일로 시스템에 한 버전을 직접 설치하는 방식이고, 다른 하나는 nvm 같은 버전 관리 도구로 여러 버전을 얹어 두는 방식입니다.
- 시스템 직접 설치: 한 버전만 쓰면 간단하고 깔끔합니다. 다만 버전을 바꾸려면 지우고 다시 까는 번거로움이 있고, 권한(
sudo)이 얽혀 꼬이기 쉽습니다. - 버전 관리 도구: 여러 버전을 보관하고 명령 한 줄로 전환할 수 있어 프로젝트가 늘수록 편합니다. 대신 처음에 도구를 한 번 설치·설정하는 단계가 더 필요합니다.
입문 단계에서 프로젝트를 여럿 다룰 가능성이 보인다면, 처음부터 버전 관리 도구로 시작하는 편이 나중의 충돌을 줄여 줍니다.
LTS를 기본으로 두는 이유
버전을 고를 때 입문자에게 가장 무난한 선택은 LTS(장기 지원) 표시가 붙은 버전입니다. LTS는 비교적 오래 안정적으로 유지되는 흐름이라 잦은 변화로 인한 혼란이 적습니다. 다만 특정 프로젝트가 정해진 버전을 요구한다면 그 버전에 맞춰야 하니, 정답이 하나로 고정된 것은 아니라는 점을 기억하면 좋습니다.
초보자가 자주 막히는 부분
- 버전이 하나면 충분하다고 가정 — 프로젝트가 늘어나면 요구 버전이 갈려서 충돌이 생기기 쉽습니다.
- 특정 글의 버전 번호를 그대로 맹신 — 버전 번호는 시점에 따라 달라지므로, 숫자 자체보다 LTS 개념과 프로젝트 요구를 기준으로 삼는 편이 안전합니다.
- 활성 버전을 확인하지 않음 — 전환했다고 생각했는데 실제로는 다른 버전이 활성화돼 있어 오류가 나는 경우가 있습니다.
- 도구별 명령 혼용 — 버전 관리 도구마다 명령이 달라서, 다른 도구의 명령을 그대로 입력하면 동작하지 않을 수 있습니다.
버전 관리 점검 체크리스트
- Node.js가 무엇을 하는 도구인지 한 줄로 설명할 수 있다
- 왜 프로젝트마다 버전이 갈릴 수 있는지 이해했다
- 버전 관리 도구가 여러 버전을 전환하는 역할임을 안다
- 입문 단계에서는 LTS 버전을 기본으로 고르면 된다는 점을 기억한다
node --version으로 현재 버전을 확인할 수 있다
정리
Node.js는 자바스크립트를 브라우저 밖에서도 실행하게 해 주는 도구이고, 프로젝트마다 요구 버전이 달라질 수 있어 버전 관리가 필요해집니다. nvm 같은 도구는 여러 버전을 깔아 두고 손쉽게 전환하도록 도와줍니다. 입문 단계에서는 특정 숫자에 매달리기보다 LTS를 기본으로 두면 충분하며, 세부 명령은 도구와 시점에 따라 달라질 수 있으니 공식 안내를 확인하는 습관을 들이세요.
자주 묻는 질문
- 꼭 버전 관리 도구를 써야 하나요? 그냥 하나만 설치하면 안 되나요?
- 프로젝트가 하나뿐이고 버전 요구가 분명하다면 단일 설치로도 충분할 수 있습니다. 다만 여러 프로젝트를 오가거나 협업을 시작하면 요구 버전이 갈리는 일이 흔해서, 그때 버전 관리 도구가 큰 도움이 됩니다.
- 어떤 버전을 설치하는 게 좋나요?
- 특정 숫자를 단정하기보다, 장기 지원(LTS) 표시가 붙은 버전을 기본으로 고르는 것이 무난합니다. LTS는 비교적 오래 안정적으로 유지되는 흐름이라 입문자에게 부담이 적습니다. 다만 참여하는 프로젝트가 특정 버전을 요구한다면 그 쪽을 따라야 합니다.
이 글은 입문자 기준으로 이해하기 쉽게 정리했으며, 내용은 운영 과정에서 순차적으로 보완될 수 있습니다. 환경에 따라 화면이나 명령이 다르게 보일 수 있으니, 막히는 부분이 있으면 isense2021@gmail.com 로 알려주세요.