이벤트 루프

이재철·2022년 6월 25일
0

1. 이벤트 루프?


  • Callback Event Queue에서 하나씩 꺼내서 동작시키는 Loop를 뜻함

  • Heap : 메모리 할당이 발생하는 곳
  • Call Stack : 실행된 코드 환경을 저장하는 자료 구조
  • Web APIs : DOM, AJAX, setTimeout 등 브라우저가 제공하는 API
  • Callback Queue : 이벤트 발생 시 실행해야 할 callback 함수가 추가됨

특징

  • 자바스크립트는 싱글 스레드 기반 언어, 한번에 하나씩 작업 진행
  • 자바스크립트는 이벤트 루프를 이용하여 비동기 방식으로 동시성을 지원

비동기 작업 코드 실행 순서

  1. 코드가 호출 스택에 쌓임, 실행되면 자바스크립트 엔진은 비동기 작업을 WebAPIs에 위임
  2. WebAPI는 비동기 작업 수행, 콜백 함수를 이벤트 루프를 통해 태스크 큐로 넘김
  3. 이벤트 루프는 콜스택에 쌓여있는 함수가 없는 경우, 태스크 큐에 있는 콜백함수를 콜스택으로 넘김
  4. 콜스택에 쌓인 콜백함수가 실행, 콜스택에서 제거



참고 URL : 자바스크립트는 어떻게 작동하는가 엔젠 런타임 콜스택 개관

profile
혼신의 힘을 다하다 🤷‍♂️

0개의 댓글