무작정 개발.Vlog

[node.js] 전역 객체(console, process, exports)

by 무작정 개발
반응형
2022.03.31(68일 차)

 

이번에는 node.js의 전역 객체에 대해 정리할 것이다.

 

node.js의 전역 객체
node.js의 전역 객체

1. 전역 객체 (Global Object)
- console, process, exports

 

node.js에는 전역 객체(Global Object)가 존재한다.

전역 객체란 node.js에서 객체를 따로 선언할 필요 없이 자유롭게 사용할 수 있는 객체를 의미한다.

즉, 별도의 모듈 로딩 없이 사용 가능하다.

 

 

1.1 console 객체

  • console 객체는 콘솔 화면과 관련된 기능을 다루는 객체
  • 즉, 콘솔에 출력을 하는 객체이다.
  • 메서드 : dir(), time(), timeEnd(), log()

(1) - console 객체의 메서드

메서드 이름 설명
log() 콘솔 화면에 문자열 출력
time() 시간 측정을 시작
timeEnd() 시간 측정을 종료
dir() 객체가 가지고 있는 속성 출력

 

(2) - time(), timeEnd() 메서드

  • 프로그램 수행 시간 구하기
var result =0;
console.time("계산시간"); //시작

for(var i=1; i<=100; i++) {
	result += i;
}

console.timeEnd("계산시간"); //끝

console.log("1부터 100까지의 합 : %d", result);

console.log("---------------------------------------")

콘솔 결과
콘솔 결과

(3) - 전역 변수 로그 찍기

console.log("현재 실행할 파일 이름 : " + __filename);
console.log("현재 실행할 파일 경로 : " + __dirname);

콘솔 결과
콘솔 결과


1.2 process 객체

  • 프로그램과 관련된 정보를 나타내는 객체
  • 주요 속성과 메서드 : env(속성), argv(속성), exit() 메서드 등

 

(1) - process 객체의 주요 속상과 메서드

 

[속성]

env : 컴퓨터 환경과 관련된 정보를 나타낸다.
argv : 실행 매개변수를 나타낸다.
version : node.js의 버전을 나타낸다.
versions : node.js와 종속된 프로그램 버전을 나타낸다.
arch : 프로세스의 아키텍처를 나타낸다.

[메서드]

exit() : 프로그램 종료
memoryUsage() : 메모리 사용 정보 객체를 리턴
uptime() : 현재 프로그램이 실행된 시간을 리턴

 

(2) - argv(속성)

//명령 실행 시 전달받는 파라미터 argv의 길이
console.log("argv속성의 파라미터 갯수: " + process.argv.length); // 갯수 : 2
console.dir(process.argv);
//argv : 파라미터 갯수

// node.exe의 위치 정보와 현재 실행되는 파일(test1.js)가 각각 0,1번째 index로 들어가서 
// 2가 출력되는 것

콘솔 결과
콘솔 결과

위의 방법을 반복문으로 출력(forEach문)

//forEach 반복문.
process.argv.forEach(function(item,index){
	console.log(index + ":" + item);
});

콘솔 결과
콘솔 결과

 

(3) - env(속성)

//env : 컴퓨터 환경 정보( 속성)
console.log(process.env);

콘솔 결과
콘솔 결과

 


 

1.3 exports 객체

  • 모듈을 생성할 때 exports 객체를 사용
  • JS파일에서 모듈을 추출할 때 require() 함수를 사용
  • 모듈 : 기능을 쉽게 사용하고자 메서드와 속성을 미리 정의해 모아 놓은 것

 

폴더 구조
폴더 구조

외부 모듈로 만들고, add속성을 호출해볼 것이다.

 

(1) - 모듈 분리 방법(exports) 2가지

 

1. 객체 사용(module.exports)으로 분리

// 1. 객체를 사용(module.exports로 분리)
var calc = {}; //객체 생성_js는 대소문자 신경안씀

calc.add = function(a,b) { //js는 객체에 함수를 넣을 수 있다.
	return a + b;

}

calc.mul = function(a,b) {
	return a * b;
}

//외부에서 쓰는 방법
modulc.exports = calc;

 

2. 속성을 사용(exports로 분리)

2. 속성을 사용(exports로 분리)

exports.add = function(a,b) {
	return a * b;
}
*/

 

이제 calc.js와 calc2.js 파일을 만들 것이다.

 

calc.js - 속성을 사용해서 분리하는 방법(exports 분리)

  • a + b를 한 값을 add에 넣는다.
/**
// 1. 객체를 사용(module.export로 분리)
 */

var calc = {};

calc.add = function(a,b) {
	return a + b;
};

module.exports = calc;

 

calc2.js - 객체를 사용해서 분리하는 방법(module.exports 분리)

  • 메서드를 변수에 넣는 형태이다.
/**
2. 속성을 사용(exports로 분리)
 */

exports.mul = function(a,b) {
	return a * b;
};

 

 

test2.js

var calc = {};

calc.add = function(a,b) {
	return a+b;
};

console.log("모듈 분리전:" + calc.add(10,20));


//1. 객체를 사용(module.export로 분리)
var calc1 = require('./calc1'); //import
console.log("모듈 분리후:" + calc1.add(20,30));

//2. 속성을 사용(exports로 분리)
var calc2 = require("./calc2");
console.log("모듈 분리후:" + calc2.mul(20,30));

실행 화면
실행 화면


다음 글에서는 내장 모듈에 대해 정리할 것이다.

반응형

블로그의 정보

무작정 개발

무작정 개발

활동하기