이벤트루프란?
이벤트루프는 자바스크립트의 비동기성을 가능하게 하는 핵심적인 개념입니다. 이벤트루프는 브라우저나 Node.js와 같은 런타임 환경에서 실행되며, 이벤트 발생 시 처리할 콜백 함수들을 큐(Queue)에 넣어놓고, 현재 실행중인 작업이 완료되면 큐에서 콜백 함수를 꺼내서 실행합니다.
이벤트루프 요소
Call Stack(호출 스택)
- 현재 실행중인 함수의 호출 스택을 추적합니다.
- 콜백 함수와 같은 이벤트와 함께 전달되는 메세지들을 보관합니다.
이벤트루프의 동작
- 호출 스택이 비어있을 때, 테스크 큐에서 가장 먼저 들어온 메세지를 꺼내 호출 스택으로 보냅니다.
- 호출 스택에서 실행할 함수와 해당 함수 내부에서 다른 함수를 호출하는 경우(콜백 함수), 호출된 함수는 호출 스택의 상단에 추가됩니다.
- 함수 실행이 완료되면 해당 함수는 호출 스택에서 제거되고 다시 테스크 큐에서 메세지를 꺼내 호출 스택으로 보냅니다.
'기술면접 > javascript' 카테고리의 다른 글
동기 비동기 (0) | 2023.04.14 |
---|---|
콜백함수 (0) | 2023.04.13 |