자바 개발을 했던 나에게는 매우 생소했던 개념이었다.
console.log('1')
setTimeout(() => {
console.log('2')
}, 0)
Promise.resolve().then(() => {
console.log('3')
})
console.log('4')
을 수행하면 출력이 어떻게 될까~~~???
출력결과 ) 1 4 3 2 임 ㄷㄷㄷㄷ
이유 )
콜스택 큐 -> 마이크로테스트 큐 ( promise ) -> 콜백 큐 ( setTimeout) 같은걸로함.

while (true) {
// 아무 것도 안 하고 반복
}
결과:
CPU 100% 점유
Node.js는 단일 스레드라서,
아래와 같은 모든 작업이 멈춥니다:
클라이언트 요청 처리
타이머 (setTimeout)
Promise.then, async/await
소켓 통신 등
🧠 왜 멈추냐면?
Node.js는 이벤트 루프 기반입니다.
→ "콜 스택이 비면" 비동기 작업들이 처리돼요.
하지만 while (true)는 콜 스택을 절대 비우지 않기 때문에,
다른 이벤트들이 실행될 기회를 아예 주지 않아요.
'TIL' 카테고리의 다른 글
| 모르는 서버 접근 후 프로세스 확인방법 (0) | 2025.07.04 |
|---|---|
| Console vs Winston (3) | 2025.07.04 |
| DB 차이점 정리 (0) | 2025.06.29 |
| 소켓에서 레디스를 왜 쓸까? (0) | 2025.06.29 |
| istio란? (0) | 2025.05.29 |