이벤트 루프는 nodejs가 비동기 작업을 관리하기 위한 구현체.
이벤트 루프는 실시간으로 두 가지 일을 하는데, 하나는 콜 스택이 비워져있는지 확인하고, 다른 하나는 콜백 큐에 콜백이 있는 지이다. 이벤트 루프는 콜 스택이 비워져 있고 콜백 큐에 콜백이 있으면 그 콜백을 콜 스택에 옮겨 실행되도록 한다
이벤트 루프는 총 6개의 페이즈로 구성되어 있으며 한 페이즈에서 다음 페이즈로 넘어가는 것을 틱이라고 함
각 페이지는 자신만의 큐를 관리하고
nodejs는 순서대로 페이즈를 방문하면서 큐에 쌓인 작업을 하나씩 실행
페이즈의 큐에 담긴 작업을 모두 실행하거나 시스템의 실행 한도에 다다르면 nodejs는 다음 페이즈로 넘어감
이벤트 루프가 살아있는 한 nodejs는 이벤트 루프를 반복
이벤트 루프의 6가지 페이지
1. Timer
2. Pending Callbakcs
3. Idle, Prepare
4. Poll
5. Check
6. Close Callbakcs