module
module을 인터넷 사전에 검색해보면 "특정 기능을 하는 컴퓨터 시스템이나 프로그램의 단위" 라고 정의되어 있다.
어렸을 때, 나는 레고를 무척 좋아했다. (물론 지금도 좋아하지만 너무 비싸져서 엄두도 못내는중ㅠㅠ) 특히 제품 하나를 사서 손수 조립해 성이나 경찰서같은 건물을 완성할 때의 희열은 이루 말할 수 없다.
어찌됐건, 결국 내가 원하는 빌딩이나 피규어를 완성하기 위해선 레고 블록 하나 하나가 필요하기 마련인데, 모듈이 바로 레고 부품과 똑같다고 보면 된다.
이름부터가 뭔가 조립을 해야할것만 같은 모듈... 생활코딩 egoing님께서 잘 설명해주셨고, 이를 바탕으로 모듈을 더욱 잘 이해하게 되었다.
지난 시간에 했던 webserver.js
코드를 다시 한번 살펴보자.
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
위 코드에서 http
라는 상수를 선언했고 require를 통해 http라는 모듈을 얻어오는 것을 확인할 수 있다. 또한 http 모듈은 http.createServer
와 같은 메소드(함수)를 가지고 있고 각 메소드는 각자의 기능을 수행한다.
이처럼 모듈은 메소드를 포함하여 작동하며, 모듈 하나 하나가 각자의 기능을 가지고 있다.
또 다른 예를 위해 nodejs 공식사이트에 들어가보자.
document 탭을 눌러보면 nodejs에 관한 가이던스들을 참조할 수 있도록 해놓았다. 부품(모듈)들의 사용설명서인 셈이다. 그 중 OS 모듈에 집중해보자.
위의 네모친 os.platform()를 눌러보면 해당 메소드의 기능이 나와있는데, "Returns a string identifying the operating system platform." 라는 설명이 적혀있다. 즉, 현재 사용하고 있는 운영체제의 플랫폼이 무엇인지를 알려주는 메소드이다.
atom 에디터에 module.js
파일을 만들고 저 메소드를 사용해보자.
module.js
var o = require('os');
console.log(o.platform());
상당히 간단하다. cmd를 통해 실행해보면,
현재 나는 Window os를 사용하고 있기 때문에 win32라고 프린트되어 나온다.
모듈에 대해서 더 자세히 공부하고 싶은 분을 위해 생활코딩-모듈 편을 링크로 남겨두니 참조하면 좋을 것 같다.