본문 바로가기
Programming

[Node.js] Javascript runtime 환경이란? NPM NVM 간단 사용방법

by 개발자 염상진 2022. 5. 8.

 

 

런타임이란 프로그램이 실행되기 위한 환경을 의미합니다. 웹 브라우저에서 HTML, CSS, Javascript를 실행하기 위한 런타임 환경을 제공하고 있습니다. Node.js는 Javascript를 위한 런타임 환경입니다. 이전에는 Javascript가 실행되기 위한 런타임 환경은 웹 브라우저에 제약되었습니다.

 

하지만 Node.js가 출시되고 난 후 더 이상 웹 브라우저 뿐만 아니라 외부로 Javascript가 나갈 수 있는 길이 열렸습니다. python, JAVA, C 언어 처럼 말이죠. 따라서 Javascript를 이용한 데스크탑 애플리케이션을 Electron.js로 만들 수 있고, 웹 서버도 Express를 통해 만들 수 있게 되었습니다.

 

 

nvm을 이용한 Node.js 설치 방법

 

nvm(Node Version Manager)은 Node.js의 버전을 관리해주는 프로그램입니다. 윈도우즈 OS에서는 사용 불가능하지만, 우분투나 맥에서는 nvm을 통해서 Node.js를 설치하게 됩니다.

 

① 먼저 wget 명령어를 통해서 최신 인스톨 파일을 설치합니다. nvm 소스코드는 GitHub에서 관리되고 있기 때문에 해당 주소를 명령어에 입력해줍니다. 명령을 다 실행하고 터미널을 재실행하면 설치완료 상태가 반영됩니다.

// wget 설치
$ sudo apt update
$ sudo apt install wget

// nvm 설치(bash shell 사용 시)
$ wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash

// nvm 설치(z shell 사용 시)
$ wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | zsh

// nvm 설치 확인
$ nvm --version

 

② Node 설치

nvm을 사용하면 특정 버전의 Node.js를 설치할 수 있습니다. 최신버전의 node를 설치하기 위해서는 node를 설치해주면 됩니다. LTS는 Long Term Support의 약자로 가장 잘 지원되고 관리되고 있는 버전을 의미합니다.

 

Node.js 공식 문서

 

특정 버전의 nvm을 직접 사용하는 명령어를 사용해서 프로젝트 내에서 버전이 상이하여 발생하는 문제를 손쉽게 해결할 수 있습니다.

 

// 최신버전 node 설치
$ nvm install node

// 특정 버전 node 설치
$ nvm install --"VERSION"

// node 버전 확인
$ node -v

// 특정버전 nvm 사용
$ nvm use "VERSION"

 

이제 nvm을 사용해서 Node.js를 설치하였습니다. Javascript를 위한 런타임 환경이 완성되었으니, 웹 브라우저 밖에서 프로그램을 실행해봅니다. 먼저 간단한 Javascript 파일을 하나 만들어주고 node 환경에서 실행합니다. 터미널 창에서 hello Node가 출려되는 것을 확인할 수 있습니다. 

 

//hello.js로 저장합니다.
console.log("hello Node");

// node를 사용해 Javascript를 실행합니다.
$ node hello.js

 

 

npm 설치 및 사용방법

 

프로젝트를 수행하기 위해서는 다양한 기본 모듈이 제공되어야 합니다. 새로운 바퀴를 만들어서는 안된다는 유명한 격언이 있듯이, 개발자들은 모든 모듈을 만들어 사용하지는 않습니다. 기능적 응집도를 가진 기본 라이브러리을 모아서 새로운 프로젝트를 수행하게 됩니다. 

 

 

프로젝트에서 사용할 모듈들은 체계적으로 관리되어야 합니다. Node.js에서 사용하는 모듈 패키지 매니저를 npm이라 부릅니다. 또한 이 모듈들의 정보를 모아둔 명세 파일이 package.json으로 정리되어 출력됩니다.

 

npm은 다양한 외부 모듈을 설치할 수 있는 앱스토어와 유사한 개념입니다. 또한 리눅스의 apt 패키지 매니저나, 맥의 brew 패키지 매니저와 같은 개념이라고 생각하면 이해가 편합니다. 필요한 모듈은 npm을 통해서 빠르게 다운로드 후 프로젝트에 사용할 수 있습니다.

 

package.json ?

package.json에는 프로젝트에 관한 정보가 담겨 있습니다. 뿐만 아니라 CLI 환경에서 사용할 수 있는 명령어를 명시하고, 프로젝트에 필요한 의존성들을 명시해 놓고 있습니다. 

 

굳이 이 파일이 필요한 이유는 여러 개발자들과 공동 작업할 때 모든 모듈을 전달해줄 필요가 없다는 것입니다. 필요한 모듈들을 package.json에 명시만 해놓으면 npm을 통해서 빠르게 모듈을 설치할 수 있습니다. 따라서 프로젝트를 담은 Git Repository에는 실제 모듈을 담은 node_modules이 아닌 package.json만 올려 놓으면 됩니다.

 

프로젝트에 필요한 모듈을 설치하기 위해서는 npm 명령어를 사용합니다. npm은 dependencies에 명시된 모듈들을 하나씩 설치하게 됩니다. 특히 --save-dev 옵션을 추가하면 프로그램 실행과 관계없이 개발을 위해서만 필요한 의존성들을 추가할 수 있습니다. 

// 필요 모듈 자동 설치
$ npm install

// devDependencies 추가
$ npm install --save-dev

 

Node 프로젝트 시작하기

Node 프로젝트를 시작하기 위해서는 먼저 package.json이 있어야 합니다. 프로젝트를 관리하기 위해 뼈대를 적어놓은 명세 파일을 기재합니다.

 

// 프로젝트 초기화
$ npm init

 

author, name, description, keyword 등 다양한 항목을 물어보는 화면이 출력되면서 package.json이 완성됩니다. 이제 Node.js를 이용한 다양한 프로젝트를 실행할 준비가 완료 되었습니다.

 

데스크탑 애플리케이션 Eletron을 사용하거나 서버 프로그램을 Express로 만들때나 모두 npm init에서 시작하시면 됩니다.

 

 

 

 

댓글