# 이벤트 루프

대부분의 자바스크립트 엔진은 크게 세가지 영역으로 나뉜다.

1. Call Stack
2. Task Queue(Event queue)
3. Heap

![이벤트 루프](https://2796616948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKGg8bxDKezkA5Zl0mEec%2Fuploads%2Fgit-blob-efc5b5e3b6963dad18993450574f0e32648b7869%2FUntitled.png?alt=media)

![이벤트 루프 진행 순서](https://2796616948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKGg8bxDKezkA5Zl0mEec%2Fuploads%2Fgit-blob-8e521a9df0944716be418152d07a1e80d690ab15%2Fevent_loop.gif?alt=media)

📌 task queue에 줄 서 있는 callback함수들은 stack이 비어있을 때만 stack으로 이동할 수 있음.

자바스크립트는 오직 한번에 하나만의 작업을 수행한다.

참고 : [https://im-developer.tistory.com/113](https://im-developer.tistory.com/113)
