Chapter 2. Node.js의 전역 객체
1. 전역변수
웹 브라우저에서 동작하는 자바스크립트 최상위 객체는 window 객체입니다.
but, Node.js는 웹 브라우저에서 동작하는 것이 아니므로 window객체가 존재하지 않습니다!!
=> 전역 변수와 전역 함수를 갖는 형태.
문자열 자료형의 전역변수인 __filename과 __dirname이 있습니다.
두 개의 변수는 변수 명으로도 눈치채셨으리라 생각됩니다.
콘솔을 통해 확인해보도록 하겠습니다.
아래 소스 코드를 node.global.js에 저장합니다.
| console.log('filename: ', __filename); console.log('dirname: ', __dirname); | cs
|
파일이 있는 경로와 파일 명을 __filename을 통해,
파일이 속해있는 디렉토리의 경로를 __dirname을 통해 알 수 있습니다.
2. console 객체
console 객체의 메서드
- log() : 출력을 하는데 사용합니다.
- time(label) : 시간 측정을 시작하는데 사용합니다.
- timeEnd(label) : 시간 측정을 종료하는데 사용합니다.
console.log() 메서드는 C 기반의 방식으로도 출력이 가능합니다.
아래 예제를 통해 직접 확인해 봅시다.
| console.log('Number : %d + %d = %d', 273, 52, 273 + 52); console.log('String : %s', 'Hello World!', '특수 기호 상관 없음!'); console.log('JSON : %j', {name: 'YeonsuMoon'}); | cs |
다음은 time 메소드를 사용하는 법을 보도록 하겠습니다.
| // 시간 측정 console.time('alpha'); var output = 1; for (var i = 0; i <= 7; i++) { output *= i; } console.log('Result: ', output); // 시간 측정 종료 console.timeEnd('alpha'); | cs |
3. process 객체
- 프로그램과 관련된 정보를 나타내는 객체입니다.
- 웹 브라우저에서 작동하는 자바스크립트에 존재하지 않는 Node.js만이 가진 객체입니다.
Property
- argv : 실행 매개 변수를 나타냅니다.
- env : 컴퓨터 환경과 관련된 정보를 나타냅니다.
- version : Node.js 버전을 나타냅니다.
- versions : Node.js와 종속된 프로그램 버전을 나타냅니다.
- arch : 프로세서의 아키텍처를 나타냅니다.
- platform : 플랫폼을 나타냅니다.
Method
- exit([exitCode = 0]) : 프로그램을 종료합니다. (매개변수 생략가능)
- memoryUsage() : 메모리 사용 정보 객체를 리턴합니다.
- uptime() : 현재 프로그램이 실행된 시간을 리턴합니다.
예제를 통해 살펴보도록 하겠습니다.
| // 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); } }); | cs |
매개 변수를 출력하고 exitTime 만큼(10초) 머물다가 종료됩니다.
4. exports 객체와 모듈
Node.js는 모듈을 사용하여 기능을 확장합니다. 이번 절에서 모듈을 생성하는 법을 보도록 하겠습니다.
먼저 module.js를 작성합니다.
| // 절대값 구하는 메서드 exports.abs = function (number) { if (0 < number) { return number; } else { return -number; } }; // 원의 넓이를 구하는 메서드 exports.circleArea = function (radius) { return radius * radius * Math.PI; }; | cs |
| var module = require('./module.js'); console.log('abs(-273) = %d', module.abs(-273)); console.log('circleArea(3) = %d', module.circleArea(3)); | cs |
모듈을 생성할 때 exports 객체를 사용하고 추출할 때는 require()를 사용합니다!!!!
* 이 포스팅은 '모던 웹을 위한 Node.js 프로그래밍'을 참고로 작성하였습니다.