Node.js, npm, nvm 개념 정리 / nvm ls 출력 메시지 해석

김민재·2025년 5월 23일

1. node.js

  • 과거 브라우저에만 사용 가능했던 자바스크립트를 브라우저 밖(서버나 로컬)에서도 실행 가능하도록 한 자바스크립트 런타임 환경이다.

2. npm

  • node package manager의 약자로, Node.js에서 사용되는 여러 패키지들을 관리하기 위한 시스템이다.
  • node.js를 설치하면 자동으로 설치된다.

3. nvm

  • Node.js의 버전 관리자이다. (npm 버전 관리 X)
  • 같은 시스템 내에서 여러 가지 Node.js 버전을 관리할 수 있도록 해준다.

nvm과 Node.js가 설치된 상태에서, 터미널에서 nvm ls 명령어를 통해 현재 설치된 Node.js의 버전을 확인할 수 있다.

🔎 메시지 해석

❯ nvm ls
->     v18.20.8
       v20.19.2
         system
default -> 18 (-> v18.20.8)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v20.19.2) (default)
stable -> 20.19 (-> v20.19.2) (default)
lts/* -> lts/jod (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.21.3 (-> N/A)
lts/gallium -> v16.20.2 (-> N/A)
lts/hydrogen -> v18.20.8
lts/iron -> v20.19.2
lts/jod -> v22.16.0 (-> N/A)

nvm ls 명령어를 실행하면 위와 같은 메시지를 확인할 수 있다.


->     v18.20.8
       v20.19.2
         system
  • 화살표가 가리키는 v18.20.8현재 사용되고 있는 Node.js 버전이고, v20.19.2는 현재 내 컴퓨터에 설치되어 있지만 사용되고 있지 않은 버전이며, system은 내 컴퓨터(운영체제)에 기본적으로 설치되어 있는 node.js 버전을 말한다.

default -> 18 (-> v18.20.8)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v20.19.2) (default)
stable -> 20.19 (-> v20.19.2) (default)
  • default는 사용자가 nvm alias default [버전명]으로 디폴트로 설정한 노드의 버전이다. 따라서 nvm use default를 실행하거나 쉘을 새로 열면 자동으로 v18.20.8 버전이 선택됨을 의미한다.

  • iojs는 io.js 버전 중 가장 최신 버전을 가리키며, 노드의 unstable 버전인 v0.12 의 포크라고 한다. 한때는 Node.js 와 io.js 로 나눠졌던 때도 있었지만, 지금은 하나로 다시 합쳐졌기에 특별히 사용할 일은 없을 것 같다.

  • unstableunstable Node.js중 가장 마지막 버전을 가리킨다. 노드는 1.0 이후로 모든 버전이 stable이다. 따라서 위의 경우에는 설치되어 있지 않아 N/A로 표시되지만, 만약 설치되어 있다면 0.11과 같은 버전이 표시될 수 있다.

  • N/ANot Applicable의 약자로, 그 버전이 내 컴퓨터에 설치되어 있지 않음을 뜻한다.

  • node는 일반적으로 가장 최신 버전을 가리키고, stable최신 안정 버전을 가리킨다.

lts/* -> lts/jod (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.21.3 (-> N/A)
lts/gallium -> v16.20.2 (-> N/A)
lts/hydrogen -> v18.20.8
lts/iron -> v20.19.2
lts/jod -> v22.16.0 (-> N/A)
  • lts/*모든 LTS 버전 중 가장 최신 버전을 가리킨다. 참고로 LTS는 long-term-support의 약자로 해당 버전은 30개월동안 치명적인 버그들은 픽스됨을 보장한다는 의미가 있어 LTS 버전을 사용할 것을 권장하고 있다.

  • 나머지 화학 원소 기호명이 붙어있는 버전명등은 각 라인에서 가장 최신 버전을 가리킨다.


참고

https://grepper.tistory.com/5

profile
넓이보다 깊이있게

0개의 댓글