융융이'Blog

노드 내장 객체 알아보기 본문

2022이전/node.js

노드 내장 객체 알아보기

바로퇴장 2020. 1. 13. 11:52

global

브라우저의 window와 같은 전역 객체입니다. 즉 window.open 메서드를 그냥 open으로 호출할 수 있는 것처럼 global도 생략할 수 있습니다.

전역 객체라는 점을 이용하여 간단한 데이터를 파일끼리 공유할 때 사용하기도 합니다.

globalA.js

module.exports = () => global.message;

globalB.js

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

global 객체의 속성에 값을 대입하여 파일 간에 데이터를 공유할 수 있지만, 이를 남용하지말아야한다. 규모가 커질수록 어떤 파일에서 global객체에 값을 대입했는지 찾기 힘들어 유지보수에 어려움을 겪게된다.

console

개발 중 변수에 값이 제대로 들어있나 확인하기 위해 주로 사용된다.

  • console.time(레이블) : console.timeEnd(레이블)과 대응되어 같은 레이블을 가진 timerhk timeEnd 사이의 시간을 측정한다.
  • console.log(내용) : 내용에 주로 변수의 값을 확인 할 때 사용된다.
  • console.error(에러 내용): 에러를 콘솔에 표시한다.
  • console.dir(객체, 옵션): 객체를 콘솔에 표시할 때 사용한다. 옵션의 colors를 true로 하면 콘솔에 색이 추가되어 보기가 한결 편해진다.
  • console.trace(레이블) : 에러가 어디서 발생했는지 추적할 수 있게 해줍니다. 보통은 에러 발생 시 에러 위치를 알려주므로 자주 사용되지 않는다.

타이머

  • setTimeout(콜백 함수 , 밀리초) : 주어진 밀리초 이후에 콜백 함수를 실행합니다.
  • setInterval(콜백 함수 , 밀리초): 주어진 밀리초마다 콜백 함수를 반복 실행합니다.
  • setImmediate(콜백 함수) : 콜백함수를 즉시 실행합니다.
  • clearTimeout(아이디) : setTimeout을 취소합니다.
  • clearInterval(아이디) : setInterval을 취소합니다.
  • clearImmediate(아이디): setImmediate를 취소합니다.

__filename, __dirname

노트에서는 파일 사이에 모듈 관계가 있는 경우가 많아 현재 파일의 경로나 파일명을 해당 메소드를 통해 알 수 있습니다.

console.log(__filename); // C:\User\zerocho\filename.js
console.log(__dirname); // C:\User\zerocho

module, exports

img

exports만 사용하여 모듈화를 했을 경우 exports의 내용이 변경이 가능하지만 module.eports를 통해서 모듈화를 한 경우에는 exports의 값을 외부에서 변경이 불가능하다.

process

process.version
'v12.13.0' //설치된 노드의 버전
process.arch
'x64' // 프로세서 아키텍처 정보
process.platform
'darwin' //운영체제 플랫폼 정보
process.pid
5648 //현재 프로세스의 아이디
process.uptime()
1144.980525039 //프로세스가 시작된 후 흐른 시간
process.execPath
'/Users/huiyung/.nvm/versions/node/v12.13.0/bin/node'
process.cwd()
'/Users/huiyung/Desktop/dyeon'
process.cpuUsage()
{ user: 121901, system: 22770 }

위처럼 정보들의 사용 빈도는 높지 않지만, 필요에 따라 사용되기도 합니다.

process.env

process.env는 서비스의 중요한 키를 저장하는 공간으로도 사용됩니다. 서버나 데이터베이스의 비밀번호와 각종 API키를 코드에 직접 입력하는 것은 위험합니다. 그래서 중요한 비밀번호는 다음과 같이 process.env의 속성으로 대체합니다.

const secretId = process.env.SECRET_ID;
const secretCode = process.env.SECRET_CODE;

process.nextTick(콜백)

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

Image result for node task microtask