Node.js의 전역 객체

[목차]

  1. 전역 변수
  2. console 객체
  3. process 객체
  4. exports 객체와 모듈

1. 전역 변수

변수명 설명
__filename 현재 실행중인 코드의 파일경로를 리턴한다.
__dirname 현재 실행중인 코드의 폴더 경로를 리턴한다.
console.log('filename:', __filename);
console.log('dirname:', __dirname);

2. console 객체

메서드 이름 설명
console.log() 괄호 안의 내용을 출력한다.
console.time(String TimeName) TimeName의 이름으로 시간 측정을 시작한다.
console.timeEnd(String TimeName) TimeName의 이름으로 시간 측정을 종료한다.

console.log() 메서드 안에서는 특수 문자를 이용해 문자열을 출력할 수 있다.

특수문자 설명 예시
%d 숫자 console.log('Number : %d', 273);
%s 문자열 console.log('String : %s', 'hi~');
%j JSON console.log('Json : %j', {name:'jabba'});

console.time()과 console.timeEnd()를 이용해 처리 시간을 체크할 수 있다.

// 시간 측정 시작
console.time('alpha');

var output = 1;
for (var i = 1; i<=10; i++) {
    output *= i;
}
console.log("결과 : %d", output);

// 시간 측정 종료
console.timeEnd('alpha');

3. process 객체

프로그램과 관련된 정보를 나타내는 객체. 웹 브라우저에서 작동하는 JavaScript에서는 존재하지 않는다.

속성 이름 설명
process.argv 실행 매개변수를 나타낸다.
process.env 컴퓨터 환경과 관련된 정보를 나타낸다.
process.version Node.js 버전을 나타낸다.
process.versions Node.js와 종속된 프로그램 버전을 나타낸다.
process.arch 프로세서의 아키텍처를 나타낸다.
process.platform 플랫폼을 나타낸다.
메서드 이름 설명
process.exit([exitCode = 0]) 프로그램을 종료한다. (대괄호 안은 생략가능, 생략시 exitCode = 0
process.memoryUsage() 메모리 사용 정보 객체를 리턴한다.
process.uptime() 현재 프로그램이 실행된 시간을 리턴한다.

먼저 process.argv 속성과 process.exit() 메서드를 살펴보자.

[node.process.js 파일 코드 : process.argv 속성과 process.exit() 메서드]

// process.argv :: 실행 매개변수를 나타낸다.
process.argv.forEach(function (item, index) {
    // 콘솔에 출력한다.
    console.log(index + ' : ' + typeof(item) + ' : ', item);

    // 실행 매개변수에 --exit가 있을 때
    if (item == '--exit') {
        // 다음 실행 매개변수의 값을 숫자형으로 변환한다.
        var exitTime = Number(process.argv[index + 1]);
        // 콘솔에 입력한 일정 시간 후 프로그램을 종료한다.
        setTimeout (function () {
            process.exit();
        }, exitTime);
    }
});

[콘솔 : 명령어 입력]

$ node node.process.js --exit 10000

입력한 모든 명령어의 단위를 매개변수로 인식한다. node / node.process.js / --exit / 10000 과 같이 인식한다는 말씀.

각각 쪼개진 매개변수는 아래와 같이 인덱스 번호를 갖게 된다.

  • item [node] :: index 0
  • item [node.process.js] :: index 1
  • item [--exit] :: index 2
  • item [10000] :: index 3

[결과]

프로그램이 실행되고 각 매개변수의 인덱스 값과 타입, 그리고 값을 출력한다. 10초 후 프로세스가 종료된다.

0 : string :  /usr/local/bin/node
1 : string :  /Users/SMARTHINK_MBL13/nodejs/20170721-node/open_node/study.js
2 : string :  --exit
3 : string :  10000
<10초 후 프로세스 종료>

4. exports 객체와 모듈

모듈(module) : 기능을 쉽게 사용하기 위해 메서드와 속성을 미리 정의해 모아 놓은 것.

Node.js는 모듈을 사용해 기능을 확장한다. 모듈을 생성할 때 exports 객체를 사용한다. exports 객체에 속성이나 메서드를 지정하는 것이다.

exports.변수명 = function(){};

[module.js 파일 코드]

// 절대값을 구하는 메서드
exports.abs = function (number) {
    if (0 < number) {
        return number;
    } else {
        return -number;
    }
};

// 원의 넓이를 구하는 메서드
exports.circleArea = function (radius) {
    return radius * radius * Math.PI;
};

[main.js 파일 코드]

require() 함수를 사용해 모듈을 추출한다. 모듈의 경로를 입력해야 한다.

require(String id);

// 모듈을 추출한다.
var module = require('./module.js');

// 모듈을 사용한다.
console.log('abs(-273) = %d', module.abs(-273));
console.log('circleArea(3) = %d', module.circleArea(3));

[결과]

$ node main.js
abs(-273) = 273
circleArea(3) = 28.274333882308138

results matching ""

    No results matching ""