-
Node.js 구동방식 (3)Node.js 2016. 6. 1. 00:59
언제나 이론은 지겹지만 마지막으로 Node.js 에서 따르는 Common.JS 모듈을 알아본다.
간단하게 말해서 브라우저는 웹페이지에 스크립트를 올릴 때 얘네들을 다른 모든 스크립트와 공유하는
주소 공간으로 주입해 버린다.
이는 어떤 스크립트에 변수를 하나 대입하면 기존 스크립트에서 이미 정의한 또 다른 변수를 의도치 않게
덮어써버릴 수도 있다는 사실을 의미한다.
Node.js 진영은 이 해결법을 Common.js 모듈 표준에서 해법을 찾는다.
다 집어치우고 코드를 보면 단번에 이해하기 쉬울 것 이다.
다음 OMG.js 파일과 StartApp.js 파일이 있다고 가정하자.
OMG.js
var msg = "OMG!!"; exports.saymsg = function() { console.log(msg); }
StartApp.js
var omg = require('./OMG'); omg.saymsg();
코드만 봐도 이해가 될 것이다.
OMG.js 에서는 saymsg 라는 함수를 exports 했고 StartApp.js 에서는 require 로 OMG.js 를 불러와서
사용하였다.
exports 는 코드 조각을 내보내고 그 코드조각을 사용하기 위해서는 require 로 불러와서 적용시킨다.
Node.js 에서는 이런 방식으로 코드를 작성하여 스크립트 간의 충돌을 막았고 더불어 조금 더 유연하고
객체지향적인 코드를 작성할 수 있다.
exports 는 내보내고 require 는 적용시키고 . 참 쉽죠 ?
참고로 module.exports 로 단일함수 공개 방식으로 사용할 수 도 있다.
이때는 코드가 약간 아주 약간 바뀐다.
OMG.js
module.exports = function() { var msg = "OMG!!"; console.log(msg); }
StartApp.js
var omg = require(./OMG); omg();
참 쉽죠?
exports 를 쓰나 module.exports 쓰나 return 하는 건 module.exports 로 똑같다.
자신이 설계한 코드에 맞춰서 적절히 사용하자.
(참고로 require 시킬때는 해당 js 파일의 주소를 적는데 뒤에 .js 를 생략해도 알아서 해당파일의 이름과
같은 폴더 또는 js파일을 찾아간다.)
현재 상태로는 Common.js 의 사용법과 기본 개념만 익혀도 충분히 활용이 가능하다.
Common.js 에 더 알고 싶다면 Google신의 도움을 받아보자.
(Google 신이시여...)
원래 NOSQL 에 관한 글도 적고 싶었지만 이론만 적으니 너무 재미없기에
다음 글 부터는 최종 목표인 멋진 SNS + 기타 기능이 들어간 웹서비스를
Javasciprt만 사용해서 만들어 보자.
참고로 Node.js 와 MongoDB 는 다른 제품으로 대체 해서 만들 예정이기도 하다. 흐흐...
(끝)
'Node.js' 카테고리의 다른 글
Node.js 구동방식 (2) (0) 2016.05.30 Node.js 구동방식 (1) (0) 2016.05.29