모듈로 만들기
모듈이란 특정한 기능을 하는 함수나 변수들의 집합입니다.
모듈로 만들어두면 여러 프로그램에 해당 모듈을 재사용할 수 있습니다.
보통 파일 하나가 모듈 하나가 됩니다. 파일별로 코드를 모듈화할 수 있어 관리하기 편합니다.

모듈을 만들 때는 모듈이 될 파일과 모듈을 불러와서 사용할 파일이 필요합니다.
var.js와 func.js, index.js를 같은 폴더에 만듭니다. 먼저 var.js를 작성합니다.
const odd = "홀수입니다.";
const even = "짝수입니다.";
module.exports = {
odd,
even,
};
var.js에 변수 두 개를 선언했습니다. 그리고 module.exports에 변수들을 담은 객체를 대입했습니다. 이제 이 파일은 모듈로서 기능합니다. 변수들을 모아둔 모듈이 되는 것입니다. 다른 파일에서 이 파일을 불러오면 module.exports에 대입된 값을 사용할 수 있습니다.
이번에는 var.js를 참조하는 func.js를 작성하겠습니다.
const { odd, even } = require("./var");
function checkOddOrCheck(num) {
if (num % 2) {
// 홀수만
return odd;
}
return even;
}
module.exports = checkOddOrCheck;
require 함수 안에 불러올 모듈의 경로를 적습니다. 위 예제에서는 같은 폴더 안에 파일을 만들었지만, 다른 폴더에 있는 파일도 모듈로 사용할 수 있습니다. require 함수의 인수로 제공하는 경로만 잘 지정하면 됩니다. 파일 경로에서 js나 json 같은 확장자가 생략할 수 있습니다.
다른 모듈(var.js)을 사용하는 파일을 다시 모듈(func.js)로 만들 수 있습니다. 또한, module.exports에는 객체만 대입해야 하는 것이 아니라 함수나 변수를 대입해도 됩니다.
마지막으로 index.js를 작성합니다.
const { odd, even } = require("./var");
const checkNumber = require("./func");
function checkStringOddOrEven(str) {
if (str.length % 2) {
// 홀수만
return odd;
}
return even;
}
console.log(checkNumber(10));
console.log(checkStringOddOrEven("hello"));
index.js는 var.js와 func.js를 모두 참조합니다. 모듈 하나가 여러 개의 모듈을 사용할 수 있는 것입니다. 또한, var.js가 func.js와 index.js에 두 번 쓰이는 것처럼, 모듈 하나가 여러 개의 모듈에 사용될 수도 있습니다.
모듈로부터 값을 불러올 때 변수 이름을 다르게 지정할 수도 있습니다. func.js와 checkOddOrEven이 checkNumber라는 이름으로 사용되고 있습니다.

index.js를 실행해보겠습니다. 결과는 다음과 같습니다.
$ node index
짝수입니다.
홀수입니다.
이렇게 여러 파일에 걸쳐 재사용되는 함수나 변수를 만들어두면 편리합니다. 그러나 모듈이 많아지고 모듈 간의 관계가 얽히게 되면 구조를 파악하기 어렵다는 단점도 있습니다. 노드에서는 대부분의 파일이 다른 파일을 모듈로 사용하고 있으므로 모듈을 만들고 사용하는 방법을 꼭 알아두어야 합니다.
방금 썼던 require 함수나 module 객체는 따로 선언하지 않았음에도 사용할 수 있었습니다. 그 이유는 노드에서 기본적으로 제공하는 내장 객체이기 때문입니다.
'프로그래밍 언어 > NODE JS' 카테고리의 다른 글
| console (0) | 2025.03.12 |
|---|---|
| global (0) | 2025.03.10 |
| JS 파일 실행하기 (0) | 2025.03.05 |
| REPL 사용하기 (0) | 2025.03.02 |
| 데이터의 속성과 dataset (0) | 2025.02.27 |