모듈 시스템은 코드를 모듈화하여 재사용성과 관리성을 높여주는 중요한 기능입니다. Node.js는 CommonJS 모듈 시스템을 기본으로 사용하며, ES6의 import/export 구문도 지원합니다.

1. CommonJS 모듈

Node.js는 CommonJS 사양을 기반으로 모듈을 정의하고 불러옵니다. 이는 대부분의 Node.js 프로젝트에서 사용되는 방식입니다.

CommonJS 특징

모듈 정의 (module.exports)

CommonJS 모듈 시스템에서는 exportsmodule.exports를 사용하여 모듈에서 데이터를 내보낼 수 있습니다.

// math.js

exports.add = function add(a, b) {
    return a + b;
}

exports.sub = function sub(a, b) {
    return a - b;
}
// math.js

function add(a, b) {
    return a + b;
}

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

module.exports = { 
	add, 
	sub 
};

모듈 가져오기 (require)

require 함수를 사용하여 다른 파일에서 모듈을 불러옵니다.

// app.js

const math = require('./math');
console.log(math.add(2, 3));  // 5
console.log(math.sub(3, 2));  // 1