Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

Node.js에서 사용자 정의(커스텀) 모듈 만들고 활용하는 방법

Node.js의 모듈(module)은 특정 기능을 수행하는 함수나 메서드를 담고 있는 일종의 패키지입니다. 모듈은 이를 가져와서(import) 사용하는 개발자에게 재사용 가능한 기능을 제공합니다. fs, fs-extra, crypto, stream처럼 웹에서 이미 공개되어 널리 쓰이는 모듈도 있지만, 직접 나만의 모듈을 만들어 코드에서 활용할 수도 있습니다.

모듈 작성 문법

Node.js에서는 exports 객체를 통해 외부로 노출할 함수를 정의합니다. 기본 문법은 다음과 같습니다.

exports.function_name = function(arg1, arg2, ....argN) {
    // 함수 본문을 여기에 작성합니다...
};

예제 - 사용자 정의 Node 모듈 만들기

실습을 위해 calc.jsindex.js라는 두 개의 파일을 생성하고, 아래 코드를 각각 입력합니다.

  • calc.js: 덧셈, 뺄셈, 곱셈, 나눗셈 함수를 포함하는 사용자 정의 모듈입니다.
  • index.js: calc.js를 불러와(require) 실제로 사용하는 메인 파일입니다.

calc.js - 모듈 정의

// 사용자 정의 Node 모듈 생성
// 다양한 함수를 exports 객체에 등록
exports.add = function (a, b) {
    return a + b; // 두 수를 더함
};

exports.sub = function (a, b) {
    return a - b; // 두 수를 뺌
};

exports.mul = function (a, b) {
    return a * b; // 두 수를 곱함
};

exports.div = function (a, b) {
    return a / b; // 두 수를 나눔
};

index.js - 모듈 가져오기 및 실행

// 아래 구문으로 사용자 정의 모듈을 가져옵니다
var calculator = require('./calc');

var a = 21 , b = 67;

console.log("Addition of " + a + " and " + b + " is " + calculator.add(a, b));

console.log("Subtraction of " + a + " and " + b + " is " + calculator.sub(a, b));

console.log("Multiplication of " + a + " and " + b + " is " + calculator.mul(a, b));

console.log("Division of " + a + " and " + b + " is " + calculator.div(a, b));

require('./calc') 구문은 같은 디렉터리에 있는 calc.js 파일을 불러오는 역할을 합니다. 확장자(.js)는 생략해도 무방하며, 모듈 경로가 현재 위치 기준임을 나타내기 위해 ./를 반드시 붙여야 합니다.

실행 결과

터미널에서 다음 명령어로 프로그램을 실행하면 아래와 같은 출력 결과를 확인할 수 있습니다.

C:\home\node>> node index.js
Addition of 21 and 67 is 88
Subtraction of 21 and 67 is -46
Multiplication of 21 and 67 is 1407
Division of 21 and 67 is 0.31343283582089554

정리

이처럼 exports 객체에 함수를 등록하고 require()로 불러오는 방식만 익히면, 누구나 손쉽게 자신만의 Node.js 모듈을 만들어 프로젝트 전반에서 재사용할 수 있습니다. 코드의 유지보수성과 가독성을 높이고 싶다면 기능별로 모듈을 분리하는 습관을 들이는 것이 좋습니다.