const process = require('process');

console.log(process.execPath);
console.log(process.version);
console.log(process.pid);
console.log(process.ppid);
console.log(process.platform);
console.log(process.env); // 환경 변수
console.log(process.uptime());
console.log(process.cwd());
console.log(process.cpuUsage());

nextTick

setTimeout(() => {
  console.log('setTimeout');
}, 0);
// Task Queue 추가

process.nextTick(() => {
  console.log('nextTick');
});
// Task Queue 추가

for (let i = 0; i < 100; i++) {
  console.log('for loop');
}
// Call Stack 추가

/* 
	[ 출력 결과 ]
	for loop
	for loop
	for loop
	for loop
	for loop
	for loop
	nextTick
	setTimeout
*/

처리 순서

  1. 위 처럼 Call Stack 에 있는 for 함수를 먼저 처리하고 나서 Call Stack이 완전히 비어지고 나면
  2. Task Queue에 있는 nodejs 함수들을 처리하게 된다.
  3. 그 와중에 nextTick 안의 callback 함수가 setTimeout 의 callback 함수 보다 먼저 처리된다.