[Node.js] 10 - 노드 내장 객체 - console, process.env, nextTick

2024. 4. 27. 04:10·Dev/Node.js

global

✅ 노드의 전역 객체

- 브라우저의 window 같은 역할

- 모든 파일에서 접근 가능하다.

- node에서 this는 global.


console

✅ 주로 개발 중 변수 값 확인 등 디버깅 용도로 사용

✅ console.log(): 일반적 내용을 콘솔에 출력

 

✅ console.error(): 에러 내용을 콘솔에 출력

- error와 log는 콘솔창에서 볼 때 차이가 없다. but, 실제 서버를 배포했을 때 서버에서 오류가 나거나 이럴 때 다른 곳(다른 폴더나 파일)에 결과를 저장해서 확인하기 위해 error를 사용한다.

 

✅ console.time(레이블), console.timeEnd(레이블): 같은 레이블을 가진 time과 timeEnd 사이의 시간 층정 용도

✅ console.table(배열): 배열 요소가 객체 리터럴인 경우 객체 속성들을 테이블 형식으로 출력. 한 열로 출력되면 보기 좋지 않으니 보기 쉽게 하기 위한..

그 밖에 console.dir(), console.trace() 등이 있다. 


process.env

✅ 시스템 환경 변수들을 저장하는 객체

- 일부 환경 변수는 노드 실행 시 영향을 미친다.

e.g. NODE_OPTIONS(노드 실행 옵션), UV_THREADPOOL_SIZE(스레드풀 개수)

 

✅ 서버의 중요한 비밀키(데이터베이스 비밀번호, 서드파티 앱 키 등)를 저장하는 용도로 사용

- 중요한 비밀번호를 process.env의 속성에 저장하고 서버 코드에는 다음과 같이 사용

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

 

process.nextTick(콜백)

✅ 이벤트 루프가 다른 콜백 함수들보다 nextTick의 콜백 함수를 우선적으로 처리함

- 프로미스도 nextTick처럼 우선순위가 높지만 nextTick보단 낮음

- 아래 예시에서 보면 setImmediate, setTimeout보다 promise와 nextTick이 먼저 실행됨

setImmediate(() => {
    console.log('immediate');
});
process.nextTick(()=> {
    console.log('nextTick');
});
setTimeout(()=> {
    console.log('timeout');
},0);
Promise.resolve().then(() => {
    console.log('promise');
});

// 1순위 nextTick
// 2순위 promise
// 3순위 timeout
// 4순위 immdiate

 

✅ process.extit(코드)

- 현재 프로세스를 멈춤

- 코드가 없거나 0이면 정상 종료. 이외의 코드는 비정상 종료를 뜻한다.


Timer 메소드는 노드 내장 객체가 아니라 노드 내장 모듈. 이건 나중에 필요하면 다시 알아보겠음.

 

'Dev > Node.js' 카테고리의 다른 글

[Node.js] 내장 모듈(path, url, searchParams)  (2) 2024.04.30
Cannot set headers after they are sent to the client 오류  (0) 2024.04.30
[Node.js] 09 - CommonJS & ECMAScripts Module  (1) 2024.04.22
[Node.js] 08 - npm(Node Package Manager)  (4) 2024.04.22
[Node.js] 07 - https와 http2  (0) 2024.04.22
'Dev/Node.js' 카테고리의 다른 글
  • [Node.js] 내장 모듈(path, url, searchParams)
  • Cannot set headers after they are sent to the client 오류
  • [Node.js] 09 - CommonJS & ECMAScripts Module
  • [Node.js] 08 - npm(Node Package Manager)
min8282
min8282
  • min8282
    min8282
    min8282
  • 전체
    오늘
    어제
    • 분류 전체보기 (110)
      • Security (33)
        • System & Network (2)
        • Application (5)
        • Cloud (20)
      • Dev (18)
        • Node.js (12)
        • Hadoop (3)
        • BOJ (2)
      • Web3 & Blockchain (2)
        • Web3 (2)
      • K-Shield.Jr (15)
      • Web Security Academy (3)
      • Wargame (13)
        • Dreamhack (3)
        • Bandit (10)
      • NS (16)
        • CTF (6)
  • 블로그 메뉴

    • 홈
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    티스토리챌린지
    web security academy
    정처기 필기
    web3 보안
    Path Traversal
    web3
    metacodem
    ELB
    systems manager
    metacode
    정처기필기
    ESC1
    스마트 컨트랙트
    aws 트리거
    정보처리기사
    aws lambda
    AWS SSM
    Session Manager
    오블완
    메타코드M
    정처기
    탈중앙화
    AWS CLI
    splunk db connect
    File Upload
    prepared statement
    메타코드
    스마트컨트랙트
    보안 그룹
    amazon s3 트리거
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
min8282
[Node.js] 10 - 노드 내장 객체 - console, process.env, nextTick
상단으로

티스토리툴바