이벤트 루프

비지·2023년 10월 11일
0

엘트

목록 보기
5/16

이벤트 루프란?

이벤트(event)를 처리하는 반복되는 동작(loop)
즉, Node.js가 비동기-이벤트 동작을 처리하는 일련의 반복 동작
비동기 코딩이 어떤 순서로 수행되는지에 대해 이해할 수 있음

브라우저와 Node.js의 이벤트 루프

이벤트 루프는 Node.js만의 특징은 아님.
JavaScript의 일반적인 동작 방식으로, 브라우저에도 있음
브라우저와 Node.js의 이벤트 루프는 기본적인 동작방식에 큰 차이가 없음
이벤트 루프의 기본적인 동작 원리를 이해하는 것이 중요

이벤트 루프 - 구성요소

Call Stack : 작성된 함수들이 등록되는 LIFO 스택
이벤트 루프는 콜스택이 비어있을 때까지 스택의 함수를 실행

Message Queue : setTimeout 같은 지연 실행 함수를 등록하는 FIFO 큐
정해진 timing이 끝나고, 콜스택이 비어있을 경우
등록된 함수를 콜스택에 추가

Job Queue : Promise에 등록 된 콜백을 등록하는 FIFO 큐
상위 함수가 종료되기 전에 콜스택이 비어있지 않더라도 잡큐에 등록된 콜백을 콜스택에 추가

이벤트 루프 정리

이벤트루프는 비동기 동작의 실행 타이밍을 이해하는 것이 중요
setTimeout은 콜스택이 비어있을 때 실행 됨
Promise 는 상위함수가 종료되기 전에 실행 됨

profile
나를 위한 업그레이드 아자아자

0개의 댓글