본문 바로가기

Node

노드 내장 객체 process

 

 현재 실행중인 노드 프로세스에 대한 정보를 담고 있음

 

process.env

 

  • 시스템 환경 변수들이 들어있는 객체
  • 비밀키(데이터베이스 비밀번호, 서드파티 앱 키 등)를 보관하는 용도로도 쓰임
  • 환경 변수는 process.env로 접근 가능

  • 일부 환경 변수는 노드 실행 시 영향을 미침
    예시) NODE_OPTIONS(노드 실행 옵션), UV_THREADPOOL_SIZE(스레드풀 개수)
    max-old-space-size는 노드가 사용할 수 있는 메모리를 지정하는 옵션

process.nextTick(콜백)

  • 이벤트 루프가 다른 콜백 함수들보다 nextTick의 콜백 함수를 우선적으로 처리함
  • 너무 남용하면 다른 콜백 함수들 실행이 늦어짐
  • 비슷한 경우로 promise가 있음(nextTick처럼 우선순위가 높음)
  • 아래 예제에서 setImmediate, setTimeout보다 promise와 nextTick이 먼저 실행됨

마이크로태스크

  • Promise, nextTick 등 다른 콜백들보다 우선시 되어 실행되는 것들을 말함
    - setImmediate, setTimeout보다 promise와 nextTick이 먼저 실행됨

process.exit(코드)

  • 현재의 프로세스를 멈춤
  • 코드가 없거나 0이면 정상 종료
  • 이외의 코드는 비정상 종료를 의미함

속성설명

process.env 컴퓨터 환경 정보를 나타냄
process.version Node.js 버전
process.versions Node.js와 종속된 프로그램 버전
process.arch 프로세서의 아키텍처를 나타냄
process.platform 플랫폼을 나타냄
process.connected 부모 프로세스와 연결되어 있는지 나타냄
process.execPath Node.js 실행 경로
process.execArgv Node.js 실행 시의 매개변수
process.argv 프로세스 실행 시 전달된 매개변수
process.mainModule 메인 모듈의 정보를 담고 있는 객체
process.release Node.js의 컴파일 정보
process.exitCode 프로세스 종료 코드

process 객체의 메소드

메소드설명

process.exit([exitCode = 0]) 프로세스를 종료
process.memoryUsage() 메모리 사용 정보 객체를 리턴
process.nextTick(callback) 이벤트 루프가 다른 콜백 함수들보다 nextTick의 콜백 함수를 우선으로 처리
process.uptime() 현재 프로세스가 실행된 시간을 리턴

 

process 객체와 이벤트

Node.js 이벤트 연결 메소드

메소드설명

on(event, eventHandler) 이벤트 연결

process 객체의 이벤트

이벤트설명

exit 프로세스가 종료될 때 발생
uncaughtException 예외가 일어나면 발생
unhandledRejection 예외가 일어나면 발생

 

// exit 이벤트 연결
process.on('exit', (code) => {
    console.log(`About to exit with code: ${code}`);
});

// uncaughtException 이벤트 연결
process.on('uncaughtException', (error) => {
    console.error(`예기치 못한 에러(uncaughtException): ${error}`);
});

// error raise manually
error.error.error();

//output
// About to exit with code: 1
// 예기치 못한 에러(uncaughtException): TypeError: Cannot read property 'error' of undefined

'Node' 카테고리의 다른 글

url 모듈  (0) 2024.01.30
노드 내장 모듈(os, path)  (0) 2024.01.29
노드 내장 객체(global, console, 타이머)  (0) 2024.01.28
다이나믹 임포트  (0) 2024.01.24
MAP과 SET, WEAKMAP, WEAKSET  (0) 2024.01.24