이벤트 루프 란?
이벤트 루프란 무엇일까?
Event Loop
이벤트 루프는 node.js의 기본적인 동작 방식이다. Call Stack과 Callback Queue의 상태를 체크하여, Call Stack이 빈 상태가 되면 Callback Queue의 첫번째 콜백을 Call Stack으로 밀어넣는다. 이를 틱(Tick)이라 한다.
- Call Stack: 코드가 실행될 때 쌓이는 곳. Stack 형태로 쌓임. 함수를 실행하고 값을 return 하면 call Stack에서 제거된다.
- Callback Queue: 비동기적으로 실행된 콜백함수가 보관된 영역. eg. setTimeout에서 타이머 완료 후 실행되는 함수 등…
이벤트 루프는 총 6개의 단계를 가진다.
이벤트 단계
- Timer 단계
이벤트 루프의 시작 단계이다.
Pending(I/O) 콜백 단계
Idel, Prepare 단계
Poll 단계
Check 단계
Close 단계
microTaskQueue
이벤트 루프는 우선적으로 Microtask Queue를 먼저 확인한다. MicroStack Queue에 콜백이 있다면 이를 먼저 Call Stack에 담는다.
참고 링크
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.