본문 바로가기
기술면접/javascript

이벤트루프

by 노믹 2023. 4. 13.

이벤트루프란?

이벤트루프는 자바스크립트의 비동기성을 가능하게 하는 핵심적인 개념입니다. 이벤트루프는 브라우저나 Node.js와 같은 런타임 환경에서 실행되며, 이벤트 발생 시 처리할 콜백 함수들을 큐(Queue)에 넣어놓고, 현재 실행중인 작업이 완료되면 큐에서 콜백 함수를 꺼내서 실행합니다.

이벤트루프 요소

Call Stack(호출 스택)

  • 현재 실행중인 함수의 호출 스택을 추적합니다.
  • 콜백 함수와 같은 이벤트와 함께 전달되는 메세지들을 보관합니다.

이벤트루프의 동작

  1. 호출 스택이 비어있을 때, 테스크 큐에서 가장 먼저 들어온 메세지를 꺼내 호출 스택으로 보냅니다.
  2. 호출 스택에서 실행할 함수와 해당 함수 내부에서 다른 함수를 호출하는 경우(콜백 함수), 호출된 함수는 호출 스택의 상단에 추가됩니다.
  3. 함수 실행이 완료되면 해당 함수는 호출 스택에서 제거되고 다시 테스크 큐에서 메세지를 꺼내 호출 스택으로 보냅니다.

'기술면접 > javascript' 카테고리의 다른 글

동기 비동기  (0) 2023.04.14
콜백함수  (0) 2023.04.13