-
[면접 준비] Node.js: event loop란?면접 준비 2024. 7. 30. 09:16
학습 키워드: Node.js, event loop2024-07-30 면접 카타 질문
Node.js의 이벤트 루프란 무엇이고 왜 필요하며 어떻게 작동하는지 아는 만큼 설명해주세요:
Node.js는 single-theaded 기반으로 동작하는데, 단일 thread가 가지는 단점을 보완하기 위해 I/O 작업의 처리에 비동기 논-블로킹 방식으로 동작하는 이벤트 루프를 사용합니다. 이벤트 루프는 멀티 쓰레드로 동작하는 시스템 커널에 I/O 작업을 넘겨주고, 작업이 백그라운드에서 처리되어 완료되면 처리 결과가 다시 Node.js로 돌아와 poll queue에 callback의 형태로 추가된 뒤 동기적으로 처리됩니다.
이벤트 루프에는 여러 페이즈가 존재합니다. 먼저 Timer 페이즈는 setTimeout과 setInterval로 스케쥴 된 callback 함수를 실행합니다. 다음 pending callbacks 페이즈는 I/O 콜백을 실행하고, idle/prepare 페이즈는 내부적으로 동작하며 이름 그대로 대기상태와 관련된 처리를 합니다. Poll 페이즈는 Timer 및 close 페이즈의 callback을 제외한 다른 모든 callback을 실행하며, setImmediate 를 호출한다면 이 구간에서 block 되고, Check 페이즈에서 실행됩니다. 마지막 close 페이즈에서는 소켓의 close나 database 연결 종료, 서버의 termination 등의 종료 작업이 처리됩니다.
--
https://nodejs.org/en/learn/asynchronous-work/event-loop-timers-and-nexttick#event-loop-explained
> Node.js / Learn
728x90'면접 준비' 카테고리의 다른 글
[면접 준비] sync vs async, blocking vs non-blocking, async vs non-blocking 차이 설명하기 (0) 2024.07.31 [면접 준비] Node.js의 Libuv 라이브러리 설명하기 (0) 2024.07.30 [면접 준비] Node.js: single-threaded, non-blocking, asynchronous 기반 JS 런타임 (0) 2024.07.29 [면접 준비] 깊은 복사, 얕은 복사 (0) 2024.07.26 [면접 준비] arrow function 설명, Express 설명 및 대안 (0) 2024.07.25