Back-end/Node.js

[Node.js] 노드 내장 객체 알아보기

poppy 2021. 7. 7. 18:02
반응형

노드에서 자주 사용하는 내장 객체에 대해 알아보겠습니다!

 

 global 

global은 브라우저의 window와 같은 전역 객체입니다. 따라서 모든 파일에서 접근 가능한 객체입니다. global은 생략할 수 있습니다.

// globalA.js
module.exports = () => global.message;

// globalB.js
const A = require('./globalA');

global.message = '안녕하세요';
console.log(A());

출력 결과

message는 global 객체이기 때문에 모든 파일에서 접근 가능한 것을 볼 수 있습니다.

 

 타이머 

다음 함수들은 타이머 기능을 제공하는 함수입니다.

  • setTimeout(콜백함수, 밀리초) - 주어진 밀리초 이후에 콜백 함수 실행
  • setInterval(콜백함수, 밀리초) - 주어진 밀리초마다 콜백 함수 반복 실행
  • setImmediate(콜백함수) - 콜백함수 즉시 실행
const timeout = setTimeout(() => {
  console.log('1.5초 후 실행');
}, 1500);

const interval = setInterval(() => {
  console.log('1초마다 실행');
}, 1000);

const immediate = setImmediate(() => {
  console.log('즉시 실행');
});

출력 결과

 

 __filename, __dirname 

현재 파일의 경로나 파일명을 알아야 할 때 자주 사용하는 키워드입니다.

  • __filename - 현재 파일의 경로
  • __dirname - 현재 파일이 담긴 디렉토리의 경로
console.log(__filename);
console.log(__dirname);

출력 결과

 

 process 

process는 현재 실행되고 있는 노드 프로세스에 대한 정보를 담고 있습니다. 자주 사용하는 것만 살펴보겠습니다.

 

1. process.env

process.env 를 입력하면 시스템의 환경변수들을 알 수 있습니다. 대표적인 환경 변수는 UV_THREADPOOL_SIZE=8 이 있습니다. 왼쪽이 환경 변수의 이름이고 오른쪽이 값입니다. 

시스템 환경 변수 외에도 환경 변수를 만들어 사용할 수도 있습니다. 서버나 데이터베이스의 비밀번호를 코드에 직접 입력하는 것은 위험하므로 process.env 를 중요한 키를 저장하는 공간으로 사용합니다. 다음과 같이 사용할 수 있습니다.

// 환경변수
SECRET_ID='secret'

// 환경변수 사용
const secretId = process.env.SECRET_ID;

 

2. process.nextTick(콜백)

이벤트 루프가 다른 콜백 함수보다 nextTick의 콜백 함수를 우선으로 처리하도록 합니다.

setImmediate(() => {
  console.log('immediate');
});
process.nextTick(() => {
  console.log('nextTick');
});

출력 결과

 

3. process.exit(코드)

실행 중인 노드 프로세스를 종료합니다.

 

 module, exports, require 

var.js에 모듈을 만들어 외부에서 사용할 수 있도록 module.exports를 해줍니다. 모듈을 가져오고 싶을 때는 require(경로) 를 사용합니다. 모듈을 exports 할 때는 변수와 함수 모두 가능합니다.

// var.js
const odd = '홀수입니다';
const even = '짝수입니다';

module.exports = {
  odd,
  even,
};

// func.js
const { odd, even } = require('./var');

function checkOddOrEven(num) {
  if (num % 2) { // 홀수면
    return odd;
  }
  return even;
}

module.exports = checkOddOrEven;

// index.js
const { odd, even } = require('./var');
const checkNumber = require('./func');

function checkStringOddOrEven(str) {
  if (str.length % 2) { // 홀수면
    return odd;
  }
  return even;
}

console.log(checkNumber(10));
console.log(checkStringOddOrEven('hello'));

출력 결과

 

반응형