공부하는 블로그

Node.js | Module & Node Package Manager(NPM) / PM2 본문

Node.js

Node.js | Module & Node Package Manager(NPM) / PM2

치킨닮은닭 2019. 12. 16. 21:36

Module

 Module(모듈)이란 프로그램에서 사용할 코드들을 하나의 단위로 캡슐화 한 것이다. 즉, 객체(함수, 변수)의 모임이라 할 수 있으며 Node.js는 모듈 단위로 각 기능을 분할할 수 있다. 모듈은 파일과 1대1의 대응 관계를 가지며 하나의 모듈은 자신만의 독립적인 실행영역을 가지게 된다. 따라서 클라이언트 사이드 JavaScript와는 달리 전역변수의 중복문제가 발생하지 않는다. 

 

 모듈은 Node.js에서 제공하는 것이 있고 또는 누군가가 만들어 놓은 모듈도 있으며 사용자가 직접 모듈을 만들 수도 있다. 기본적으로 모듈은 크게 외장모듈내장모듈 2가지로 나눌 수 있다.

 

· 외장모듈
 일반 Node.js 개발자들이 만들어 놓은 모듈(라이브러리)다. 외장모듈을 사용하기 위해서는 npm(Node Package Manager)를 사용한다.

· 내장모듈
Node.js를 설치하고 나면 그 안에 이미 제공되어지는 모듈을 의미한다. 내장 모듈은 이미 Node.js를 설치할 때 존재하기 때문에 npm을 사용하지 않는다.

 이 외에 사용자가 자신이 개발하는 프로그램을 위해 직접 모듈을 만들어 사용하기 위해서는 직접 모듈을 구성하여 정의하고 밖으로 내보내주어야 한다. 모듈은 'module.exports' 를 통해 정의하고 외부로 공개한다. 그리고 모든 모듈은 'require()'를 이용하여 임포트하여 이용할 수 있다.

 

 간단한 계산기를 모듈화하여 구현해보자.

 

// moduleex.js
function plus(a, b) {
    return a + b;
}

function minus(a, b) {
    return a - b;
}

function multi(a, b) {
    return a * b;
}

function div(a, b) {
    return a / b;
}

module.exports = {
    'plus' : plus,
    'minus' : minus,
    'multi' : multi,
    'div' : div
};

 

 각각의 더하기, 빼기, 곱하기, 나누기 함수(객체)를 하나의 단위로 모듈화하여 외부로 내보내주었다(export). 

 

// main.js
var cal = require('./moduleex.js');

console.log(cal.plus(3, 29));
console.log(cal.minus(2, 10));
console.log(cal.multi(9, 3));
console.log(cal.div(8, 1));

 

 이전에 모듈화하여 내보낸 파일(moduleex.js)을 main.js 파일에서 'require()'를 통해 불러들여(import) 모듈 안의 각각의 객체를 사용할 수 있다.

 

위 코드의 결과는 다음과 같다.

 

module 사용 결과. 사칙연산이 제대로 됬음을 확인할 수 있다.

 

Node Package Manager(NPM)

 Node Package Manager(NPM)은 Node.js 기반의 모듈을 모아둔 집합 저장소이다. 여기에 저장된 오픈 소스 모듈을 우리는 필요에 따라 터미널에서 'npm' 명령어를 통해 쉽게 다운받아 사용할 수 있다. npm을 테스트하기 위해 node.js 개발을 편리하게 해주는 'PM2'를 설치해보자.

 

 

PM2 - Home

Advanced process manager for production Node.js applications. Load balancer, logs facility, startup script, micro service management, at a glance.

pm2.keymetrics.io

* PM2 : Node.js 프로세스 관리도구로 노드 서버가 예기치 못한 상황으로 강제로 꺼졌을 경우 앱을 재실행해준다. 이외에도 많은 기능이 있다.

 

 

 'npm install <package_name>'을 통해 원하는 디렉토리에 모듈을 설치하자. 

 

pm2 모듈을 설치하는 명령어. 로딩이 끝나고 모듈 설치가 완료되면 이와 같은 문구가 나온다.

 

 pm2의 간단한 명령어 몇가지를 알아보자.

 

'pm2 start <app.js> -- name <app_name>' : pm2 모듈을 백그라운드에 실행한다. 프로그램명을 임의로 지정 가능하다.
'pm2 list' : 지금 pm2가 실행되고 있는 서버 리스트를 보여준다.
'pm2 stop <app_name>'  : app_name에서 실행중인 pm2를 종료한다.
'pm2 log' : 서버에 문제점이 있을 경우 에러 메세지를 확인할 수 있다.

pm2 이외에도 다양한 모듈을 npm을 통하여 다운로드가 가능하다.

'Node.js' 카테고리의 다른 글

Node.js | GET & POST 요청에 응답하기  (0) 2019.12.17
Node.js | URL parsing - 요청에 응답하기  (1) 2019.12.17
Node.js | HTTP 웹서버 구축 & File System  (0) 2019.12.17
Node.js | Introduction  (0) 2019.12.16
Node.js | Node.js 설치  (0) 2019.12.12
Comments