[nodeJS] 1. 코드 관리기능 - 모듈화(module.export와 require) by rider

 nodeJS 스터디 첫번째 글입니다.

node.js in action을 참고해서 스터디한 내용을 간략하게 블로그에 이어서 올릴 예정입니다.

 본론으로 들어가서, 

개발과 유지보수의 편리함을 위해서는 코드 관리가 필요가 필요합니다.

노드에서 사용되는 코드관리기능인 모듈화 입니다.

ex) * currency.js 

var Currency = function(canadianDollar) {        //생성자 선언
this.canadianDollar = canadianDollar;
}

Currency.prototype.roundTwoDecimals = function(amount) {   
return Math.round(amount * 100) / 100;
}

Currency.prototype.canadianToUS = function(canadian) {
return this.roundTwoDecimals(canadian * this.canadianDollar);
}

Currency.prototype.USToCanadian = function(us) {
return this.roundTwoDecimals(us / this.canadianDollar);
}

module.exports = Currency;    //외부에서 접속 가능하도록 모듈화

* test-currency.js

var Currency = require('./currency');  //모듈을 불러와서 사용
canadianDollar = 0.91;

var currency = new Currency(canadianDollar);
console.log(currency.canadianToUS(50));

위의 소스는 객제지향형 예제로 위와같이 정리하면 코드관리가 편합니다.

그리고 require는 노드에서 사용되는 몇 안되는 동기식I/O다. 보통 파일의 가장윗부분에서 인클루드됩니다.

동기식I/O기 대문에 어플리케이션I/O가 많이 발생하는 부분에서는 사용을 피하는게 바람직합니다.