코드노트

자바스크립트 이벤트 루프 이해하기 본문

Code note/자바스크립트

자바스크립트 이벤트 루프 이해하기

코드노트 2022. 11. 14. 19:59

자바스크립트는 싱글 스레드 기반 언어이다.

그렇기 때문에 한번에 한개만 작업이 진행된다.

 

반복적인 동작을 통해서 여러작업이 동시에 이루어지는것처럼 보인다.

바로 이벤트 루프로 구현되기 때문이다.


Event Loop

- tick (반복적인 동작) 

Javascript Engine

- Heap과 Call Stack으로 구성되어 있다.

 

* Heap

- 메모리 할당이 일어나는 공간

- 변수, 함수 선언시 메모리 할당이 일어남

 

* Call Stack

- 코드 실행시 쌓임

- Last in First Out / 스택


WebAPIs

- 브라우저에서 제공하는 API

- DOM, Ajax, 타이머 함수 등

- Callback 함수를 Callback Queue에 넣음

 

Callback Queue

- 비동기적으로 실행된 콜백 함수

(Ajax, 타이머 함수 실행 완료 후 실행할 콜백함수가 보관되어 있다.)

- First in First Out