728x90
Node.js는 브라우저 환경이 아닌 런타임 환경이기 때문에, 브라우저에서 사용하는 window, document 같은 객체 대신, Node.js만의 내장 객체들이 존재합니다.
1. global – 전역 객체
Node.js에서의 global은 브라우저의 window와 비슷한 개념입니다.
어디서든 접근할 수 있는 전역 변수나 함수들을 포함하고 있어요.
global.hello = '안녕!';
console.log(hello); // 안녕!
❗ 참고: global에 선언한 값은 어디서든 접근 가능하지만, 무분별한 사용은 지양하는 것이 좋습니다 (예측 어려움).
2. console – 콘솔 출력 객체
console 객체는 로그를 출력하거나 디버깅할 때 사용합니다. 브라우저의 console과 거의 동일합니다.
- console.log(내용) – 일반 출력
- console.error(에러내용) – 오류 메시지 출력
- console.table(배열) – 테이블 형태 출력
- console.time() - console.timeEnd(레이블)과 대응되어 같은 레이블을 가진 time과 timeEnd 사이의 시간을 측정
- console.dir(객체,옵션) - 객체를 콘솔에 표시할 때 사용
- console.trace(레이블) - 에러가 어디서 발생했는지 추적
3. Timer – setTimeout, setInterval
setTimeout(() => {
console.log('1초 후 실행');
}, 1000);
const intervalId = setInterval(() => {
console.log('반복 실행');
}, 2000);
setTimeout(() => clearInterval(intervalId), 5000); // 5초 후 반복 종료
- setTimeout() – 일정 시간 뒤 실행
- setInterval() – 일정 시간마다 반복 실행
- setImmediate() - 콜백 함수를 즉시 실행
- clearTimeout(), clearInterval(),clearImmediate() – 실행 취소
🔍 타이머는 libuv의 타이머 큐에 등록되어 이벤트 루프에서 처리됩니다.
🔍 setTimeout(() ,0)와 setImmediate() 두개 함수 비교할때 setImmediate이 함수가 더 빠르지만 개발 환경에 따라서 setTimeout((),0)이 빠를때가 있음
4. process – 현재 실행 중인 프로세스 정보
process 객체는 Node.js의 실행 환경 및 상태를 다루는 아주 중요한 객체입니다.
- process.pid – 현재 프로세스의 ID
- process.cwd() – 현재 작업 디렉터리
- process.env – 환경 변수 접근
- process.exit - 노드 프로세스 종료
- process.nextTick(콜백) - 이벤트 루프가 다른 콜백 함수들보다 nextTick의 콜백 함수를 우선으로 처리하도록 만듬
마이크로태스크 (Microtask)
Node.js에서는 마이크로태스크 큐와 태스크 큐가 존재합니다.
마이크로태스크는 비동기 작업 중에서도 우선 순위가 높은 작업입니다.
대표적으로 Promise.then, queueMicrotask 등이 이에 해당됩니다.
출력 순서:
1. 동기 코드
2. 마이크로태스크
3. 태스크 큐
✅ 마이크로태스크는 이벤트 루프의 각 사이클마다 가장 먼저 처리됩니다.
'node' 카테고리의 다른 글
코어 자바스크립트 - 실행 컨텍스트 (0) | 2025.04.07 |
---|---|
코어 자바스크립트 데이터 타입 (0) | 2025.04.07 |
Node.js 모듈 시스템 완전 정복: CommonJS vs ES Modules (0) | 2025.04.03 |
node 핵심 개념 (0) | 2025.04.03 |