"외부에 영향을 받지 않는(독립된), 재사용 가능한 코드의 묶음"
쉽게 말해서 필요한 함수들의 집합이라는 뜻인데, 좋은 예시가 있다.
python
에서 import
명령어를 써서 가져오는 것들이 전부 module
이다.
module
을 사용하는 방법은 다음 두 단계로 나뉜다.
1. require
2. exports
// 현재 파일명 : gomao.js //
사용법1
var gomao = function(){ console.log("gomao!") }; module.exports = { gomao }
module.exports는 객체가 기본값이고, 위와 같이 객체로 사용 가능하다.
위와 같이 함수를 미리 선언하고 exports 해줄 수 있다.
사용법2
module.exports = { gomao : () => console.log("gomao!") }
module.exports 객체 안에 직접 함수를 선언할 수도 있다.
사용법3
exports.gomao = () => console.log("gomao!")
마지막으로, 함수 하나하나를 직접 exports 해줄 수도 있다.
이렇게 gomao.js
파일에서 exports
작업을 해주면.....
사용법
const test = require("./gomao.js"); const test2 = require("./gomgom.js"); const { cutehane } = require("./cutehane.js"); console.log(test.gomao()); console.log(test2.gomgom()); console.log(cutehane());
실행 방법은 위와 같다.
실행 결과는 아래와 같다.모듈 사용법 정리
각
module
file에서 선언해주고exports
해준 함수들을 실행할 file에서
require
메서드를 사용해서 새로운 변수에 함수를 저장해주면,
test.gomao()
,test.gomgom()
와 같이 함수를 사용 가능하다.원래 함수명을
{}
객체에 담아require
메서드를 사용하면,
module
file에서 선언한 이름 그대로cutehane()
로 사용 가능하다.
require('./my-module')
만약 my-module이 .js파일이면 해당 파일을 load (.js 생략 가능)
my-module이 디렉터리인 경우 my-module/index.js
파일 load
require('./function_module')
function_module이 함수형 module인 경우, require 만으로 실행되지 않고,
이후에function_module()
와 같이 필요 시점에 실행시켜줘야 한다.
require('./my-data')
my-data파일이 json파일인 경우, .json을 생략해줘도 된다.위에 언급 하였지만,
여러번 실행해야 할 module
은 함수형 module로 선언해야 한다.
뜬금 없지만, 이 시점에서 궁금한 사람들이 있을 것이다.
대체 gomao는 뭐고, gomgom은 뭐고, cutehane는 뭐란 말인가?
잠깐 짚고 넘어가려 한다.ㅋㅋㅋㅋㅋㅋㅋㅋㅋ
아무튼 이런 방법으로 module을 만들고 호출하여 사용할 수 있다.
다음 포스팅에서는 Node.js의 내장 module에 대해 다뤄보려 한다.