개발 공부/Node.js

[Node.js] VSCode - Node.js 개발 환경 설정 및 npm으로 외부 모듈 설치하기

sngynhy 2022. 1. 24. 15:15

1. VS Code 설치 (과정 생략)

https://code.visualstudio.com/

 

Visual Studio Code - Code Editing. Redefined

Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications.  Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.

code.visualstudio.com

2. Node.js 설치 (과정 생략)

https://nodejs.org/ko/

 

Node.js

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

nodejs.org

 

Node.js 설치 시 Node.js는 물론, node와 관련된 패키지를 관리해주는 npm(node package manage)가 함께 설치된다.

npm(node package manage)란?

Javascript Runtime 환경 Node.js의 기본 패키지 관리자로써

npm을 통해 node.js로 만들어진 모듈을 웹(외부)에서 받아 설치하고 관리할 수 있도록 해준다.

(JAVA의 Maven, Gradle과 같은 역할)

 

npm으로 외부 모듈 패키지 설치

node.js 프로젝트에서 필요한 외부 모듈을 npm으로 설치하는 방법

1. cmd 창에서 해당 node.js 프로젝트가 있는 경로로 이동

cd [프로젝트 경로]

2. 경로 이동 후 npm install 명령으로 외부 모듈 패키지 설치

ex) npm install moment

npm install [모듈명]

만약 아래와 같이 옵션에 -g를 붙이게 되면 해당 컴퓨터 전역(global)에서 사용하는 독립적인 소프트웨어로 설치됨

npm install [모듈명] -g

설치된 모듈 삭제 시 npm uninstall 명령으로 삭제 가능

npm uninstall [모듈명]

npm로 moment 모듈 설치

 

설치 완료 후 해당 프로젝트에 node_modules 디렉터리 생성되고, node_modules 안에 moment 패키지가 설치된다.

만약, node_modules 디렉터리가 없는 경우 외부 패키지를 다운로드 하면서 자동으로 생성

※ 프로젝트 단위로 외부 모듈 설치 시 문제점

프로젝트 경로에서 npm install을 이용하여 모듈을 설치하는 경우 해당 프로젝트 이외에는 사용할 수 없다는 문제점이 있다. 만약 여러 프로젝트에서 동일한 외부 모듈을 사용하는 경우 각각의 프로젝트마다 npm install을 해주어야하는 번거로움이 생기게 된다. 이를 해결하기 위한 방법으로 외부 모듈이 설치되는 node_modules 디렉터리를 프로젝트들의 상위 디렉터리로 옮기는 방법이다. node.js는 프로젝트가 실행될 때 필요한 모듈이 현재 프로젝트의 node_modules 디렉터리에 존재하는지 먼저 확인 후 없으면, 상위 node_modules 디렉터리 안에 존재하는지 검사한다. 만약 상위에도 존재하지 않는 경우 더 상위 디렉터리를 검사하는 식으로 동작한다.

 

package.json으로 패키지 관리하기

프로젝트에서 사용하는 외부 모듈이 많아지게 되면 관리가 번거로워지고,

새로운 프로젝트을 진행 시 필요한 모듈이 많을 경우 모듈 수만큼 npm 명령을 사용해야한다.

필요한 모듈들의 목록을 파일로 정리해놓고 목록 파일을 이용하여 단 한번의 명령어로 필요한 패키지들을 모두 설치할 수 있도록 해주는 패키지 정의 파일이 package.json 파일이다. 

(해당 파일 생성 과정은 아래에 ↓↓↓)

3. VS Code에서 Node.js 실행을 위한 설정

3-1. VS Code의 터미널 창(또는 윈도우 cmd창)에서 npm init 설정

npm init은 node.js를 실행하기 위한 initial 과정으로 package.json 파일을 프로젝트에 생성해준다.

npm init 명령어로 현재 프로젝트명이나 프로젝트의 시작 파일, 설명, 버전 정보, 현재 사용하는 라이브러리의 버전 정보 등 여러가지 정보를 입력할 수 있다.

npm init 과정이 완료되면, 다음과 같이 프로젝트 환경에 package.json 파일이 생성된다.

※ package.json : npm init 과정에서 등록한 정보를 기반으로 생성되며

   npm을 통해 생성되는 node 관련 component들의 dependency를 관리하는 모듈로써,

   Maven Project의 pom.xml과 비슷한 역할이다.

3-2. npm로 외부 모듈 설치 - npm로 express 모듈 설치

옵션으로 --save를 주어 설치 시 자동으로 package.json의 dependencies 목록에 추가된다. 

npm install [모듈명] [옵션]

package.json 파일을 확인해보면 dependencies 내부에 위에서 설치한 express 모듈이 포함되어 있다.

dependencies는 현재 프로젝트가 의존한고 있는 외부 모듈 목록을 정의하는 속성이다.

package.json에 직접 denpendencies 목록을 추가하여 외부 모듈 설치가 가능하다.

만약 moment 모듈을 직접 package.json에 추가했다면 npm update 명령만 입력해주면,

package.json 파일을 검사하여 추가된 모듈을 다운받는다.

npm update

 

1) npm init으로 생성한 package.json

2) npm install로 생성한 express node module

- node module이 생성되면, package-lock.json과 node_modules 디렉토리 생성

- package.json 파일 하단에 dependencies 생성

특히 dependencies의 경우 Node.js을 Runtime으로 실행 할 경우

실제 Application Package와 함께 packaging되는 Library 파일로 자동으로 버전 관리가 이루어진다.

devDependencies로 추가되는 경우 배포하기 위한 패키징에 포함시키지 않도록 구분하여 관리할 수 있다.

쉽게 생각하자면 Testing 관련 라이브러리, 로그 관련 라이브러리 등 개발 환경에서 분석을 위해 추가한 라이브러리

운영환경에 적용하지 않도록 관리할 수 있는 라이브러리 dependency라 할 수 있다.

 

node.js를 통해 실행시키기 - 파일 생성 후 출력

node 설치 시 자동으로 시스템 변수에 Path가 설정(기본으로체크되어있음)되기때문에 node [FileName]으로 실행된다.

 

※ 참고

https://dololak.tistory.com/98?category=642882