Untitled

이벤트 루프는 Node.js가 여러 비동기 작업을 관리하기 위한 구현체.

(X) => console.log("Hello World")  동기 작업

(O) => file.readFile('file.txt', callback) 비동기 작업

이러한 비동기 작업들을 모아서 관리하고 순서대로 실행할 수 있게 해주는 도구.

Untitled

이벤트 루프는 JavaScript가 단일 스레드라는 사실에도 불구하고 가능할 때마다 작업을 시스템 커널로 오프로드하여 Node.js가 non blocking I/O 작업을 수행할 수 있도록 합니다.

대부분의 최신 커널은 multi 스레드이기 때문에 백그라운드에서 실행되는 여러 작업을 처리할 수 있습니다. 이러한 작업 중 하나가 완료되면 커널은 적절한 콜백이 polling queue에 추가되어 결국 실행될 수 있도록 Node.js에 알립니다.

요약

<aside> 💡 비동기 작업을 커널 혹은 쓰레드로 위임해서 거기서 처리하게 한 후에 콜백을 poll queue(event loop에서 여러 단계 중 하나)에 더해줍니다. 그리고 콜백을 실행합니다.

</aside>

Event Loop 구조

Untitled