nvm - 노드 버전 매니저

노드 버전 매니저는 노드JS의

버전 관리자입니다.

 

노드JS는 크롬 V8 JS엔진에서

동작하는 자바스크립트 런타임입니다.

비동기 이벤트 드리븐 방식의

런타임으로 동시에 여러개의

요청을 처리할 수 있는 서버를

콜백방식으로 구현할 수 있도록

설계되어 있습니다.

 

또 하나는 JS언어를 배우면

한개의 언어로도 웹 프로그램의

백엔드 서버를 별도의 언어로

구현할 필요가 없기 때문에

웹계에서 JS의 대세를

주도하고 있습니다.

 

노드 JS 홈페이지에서 최신의

버전을 다운로드 받을 수 있고

각종 버전에 따른 API의 문서화가

정리되어 있습니다.

 

 

Node.js (nodejs.org)

 

Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

 

그런 노드JS에도 문제가 있는데

자바스크립트라는 언어 자체가

복잡하게 진화되어 있고

노드JS의 출시 이후 개발속도가

워낙 빠르기 때문에 노드JS의

버전에 따라 호환성 문제가

발생하게 되는 점 입니다.

 

아래 버전들만 봐도 지난 수년간

상당히 많은 버전이 릴리즈

되었다는 점을 알 수 있는데요.

노드JS 버전
노드JS 버전

예를 들어 15.x 버전과 13.x 버전과는

호환성 문제가 발생할 수 있어서

새로운 프로젝트를 최신 버전으로

개발하여 추가하려고 하면

기존의 웹 프로그램과 호환성 충돌이

발생할 수 있습니다.

 

이런 문제를 해결하기 위해서

nvm (Node Version Manager)가

운영되고 있습니다.

 

nvm은 아래 깃헙을 통해서 설치할 수 있습니다.

 

GitHub - nvm-sh/nvm: Node Version Manager

 

GitHub - nvm-sh/nvm: Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions

Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions - GitHub - nvm-sh/nvm: Node Version Manager - POSIX-compliant bash script to manage multiple active nod...

github.com

주의할 점은 npm (node package manager)와

이름이 비슷하지만 그쪽은 패키지 관리자이고

이쪽은 버전 관리자로 다른 프로그램으로

혼동하지 않도록 합니다.

 

nvm 의 설치

 

nvm은 리눅스와 윈도우 운영체제에

설치할 수 있습니다.

 

여기서는 윈도우의 WSL2를 사용해서

우분투 리눅스에 설치하겠습니다.

기본적으로는 리눅스의 설치방법과

거의 비슷합니다.

*WSL2(리눅스용 윈도우 하위시스템 2)

 

윈도우용 nvm도 있습니다만,

Docker를 실행하기 위해서는

리눅스에 설치해야 하기 때문에

마이크로 소프트의 공식문서에서도

WSL2로 Node.js의 설치 가이드에

잘 설명이 되어 있습니다.

(MS도 nvm 을 사용하는 것을

권장하고 있습니다)

 

WSL2는 윈도우10에서 별도로

설치할 수 있습니다.

자세한 설치 방법은 아래의

링크를 참고합니다.

 

WSL2로 윈도우10에 리눅스 설치하기 / 리눅스용 윈도우 하위 시스템

 

WSL2로 윈도우10에 리눅스 설치하기 / 리눅스용 윈도우 하위 시스템

WSL2 설치하기 WSL2는 윈도우10에서 리눅스를 사용할 수 있는 시스템 소프트웨어입니다. 그동안 윈도우를 설치한 PC에서 리눅스를 사용하기 위해서는 멀티 부팅 기능을 사용하여 하드 파티션을 나

digiconfactory.tistory.com

 

WSL 2에 Node.js 설치 | Microsoft Docs

 

WSL 2에 Node.js 설치

WSL(Linux용 Windows 하위 시스템)에 Node.js 개발 환경을 설치하는 방법을 안내하는 가이드입니다.

docs.microsoft.com

 

만약 설치하려는 시스템에 기존에

Node.js 나 npm이 설치되어 있고

서버를 운영 중이라면 nvm의

설치 전에 발생할 수 있는

문제들을 체크한 후 진행하는게 좋습니다.

 

우분투라면 curl 이나 wget 명령어로

설치할 수 있습니다.

여기서는 curl 명령어를 사용합니다.

 

curl 이 없는 경우 설치합니다.

 

sudo apt install curl

깃헙의 설치명령어를 사용하여

스크립트를 설치합니다.

(현재 최신버전 v0.38.0)

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash

nvm 디렉토리가 $HOME

디렉토리에 생성됩니다.

 

정상적으로 설치되었다면

터미널을 재시작하여

nvm 명령어를 사용할 수 있습니다.

 

설치가 되었는지 확인은 --version

옵션으로 합니다.

nvm --version

 

다음은 nvm으로 node.js를 설치합니다.

 

apt 패키지 관리자를 사용하지 않고

nvm 을 통해서 설치하는 것이

차이가 있습니다.

 

아래와 같이 하면 기본적으로

최신의 버전이 설치됩니다.

 

nvm install node

안정적인 최신 LTS 릴리즈를

설치하는 것은 아래와 같습니다.

(LTS 버전 - 롱텀서포트)

nvm install --lts

 

node.js를 설치하면

npm도 같이 설치됩니다.

npm --version

설치된 버전 리스트를 봅니다.

nvm ls

 

노드의 버전을 변경하는 것은

아래와 같이 버전을 적어줍니다.

소수점까지 적어주면 되지만

구분되는 앞자리 숫자를 적어줌으로써

사용하는 버전을 바꿀 수 있습니다.

 

nvm use 14

 

이렇게 하면 node 버전별로 설치한

npm 패키지까지 별도 관리할 수

있어서 호환성 문제가 해결됩니다.

 

apt가 있는데 굳이 nvm을 설치해서

사용하는 이유로 볼 수 있습니다.

 

nvm 설치 확인
nvm 설치 확인

또 필요없는 버전이 설치되어 있으면

삭제하면 됩니다.

 

nvm uninstall (버전)

 

WSL2 에서 nvm 설치 오류

WSL2에서 nvm을 설치하다가

HEAD detached at FETCH_HEAD

오류때문에 진행이 안되서

검색을 해봤는데...

 

아래 명령어를 실행합니다.

sudo apt update
sudo apt install build-essential checkinstall libssl-dev

다음 메뉴얼 설치하는 내용을

zshrc에 추가합니다.

(zsh 사용자의 경우인 듯)

# Add the following in ~/.zshrc
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

 

WSL2라는 특성이 있어서 간혹

알 수없는 오류가 나오면 구글

검색으로 최대한 해결하도록 합니다.

 

시스템에 설치되어 있는 패키지나

셸의 설정에 따라 오류가

발생할 수 있는 것 같습니다.

 

깃헙에 보면 설치가 안되는

셸이라던가 공지사항이 있습니다.

 

*참고 문서

HEAD detached at FETCH_HEAD · Issue #2486 · nvm-sh/nvm · GitHub

 

설치가능한 버전 확인하기

아래 명령어를 치면 설치가능한

리스트를 출력합니다.

nvm ls-remote

 

실행 테스트

 

간단하게 Hello World를 해봅니다.

 

Hello World 테스트
Hello World 테스트

정상적으로 작동이 되면 성공입니다.

 

통합개발환경 설치

WSL2에서는 윈도우 OS에 VSC

(비주얼스튜디오코드)를 설치하고

WSL에 원격 접속하여 연결하는

방법으로 개발이 가능합니다.

 

비주얼 스튜디오 코드의 설치는

아래의 문서를 참고합니다.

 

HTML5 기초 | 비주얼 스튜디오 코드 설치와 초기설정, 테마, 실행 테스트

 

HTML5 기초 | 비주얼 스튜디오 코드 설치와 초기설정, 테마, 실행 테스트

*HTML5 준비사항 HTML을 학습하기 위해서는 몇 가지 준비가 필요하다. 사실 무작정 메모장을 열고 HTML5 파일을 편집하거나, 온라인 IDE를 사용하는 것도 가능은 하지만 나에게 맞는 개발환경을 갖추

digiconfactory.tistory.com

 

프로그램을 실행시키고 왼쪽의

확장 메뉴에서 검색하여

Remote - WSL를 설치합니다.

 

확장메뉴 아래에 있는 아이콘에

원격탐색기가 있습니다.

 

Remote - WSL
Remote - WSL

 

Ubuntu-20.04 -> WSL2 distro 이름을

클릭하여 원격 접속이 가능합니다.

우분투가 아니라 칼리 리눅스 등

WSL에 배포된 distro 라면 접속이

다 되는 것으로 알고 있습니다.

여기서는 우분투20.04를 테스트합니다.

 

이제 별도의 창이 생성되어

리눅스 환경과 똑같이 프로그램을

개발하고 테스트할 수 있습니다.

 

주의할 점은 새로운 디렉토리에서

nvm을 사용하려면 nvm use (버전)을

입력해야 합니다.

그렇지 않으면 node라는

명령어를 인식하지 않습니다.

 

이것은 노드 버전 관리자가

디렉토리에 따라 어떤 버전을

사용할지 체크하는 것을 알 수 있습니다.

 

WSL 비주얼 스튜디오 코드
WSL 비주얼 스튜디오 코드

 

WSL2를 최근에 사용하기

시작했습니다만, 상당히 신박합니다.

 

현재는 x윈도우 쪽은 디스플레이를

우회해서 사용가능하지만

MS가 올해안에 GUI를 제대로

지원하는 정식 버전을 내놓는다면

윈도우10 환경도 서버 등 개발쪽도

원활하게 사용할 있어져서

많이 쓸만해질 것 같습니다.

(개발 + 게임용 같이 사용가능)

 

 

일반 노드JS설치 - 윈도우10

본격적인 Node.js개발을 위해서는

버전 관리자를 사용하는 것을 권장하지만

리눅스의 사용법도 알아야 하기 때문에

학습 목적이나 테스트 용도로는

조금 부담스러울 수도 있습니다.

 

그런 경우 그냥 윈도우10 PC에 설치해서

노드를 구동하는 방법도 있습니다.

이는 복잡한 설정은 필요없고

윈도우 앱을 설치하는 것과 같습니다.

 

관련해서 아래의 문서를 참고합니다.  

 

NODE.JS(노드JS) 설치 및 테스트 완료하기 | 윈도우10

 

NODE.JS(노드JS) 설치 및 테스트 완료하기 | 윈도우10

NODE.JS (노드JS)는 Chrome V8 JavaScript 엔진으로 빌드된 오픈소스이며 크로스 플랫폼 자바스크립트 런타임 환경입니다. 노드JS를 사용하면 웹브라우저 밖에서 자바스크립트를 사용할 수 있어서 서버

digiconfactory.tistory.com

 

공유하기

facebook twitter kakaoTalk kakaostory naver band