이벤트 루프 (Event Loop)

자바스크립트는 단일 스레드 언어이다. 단일 스레드는 동시에 하나의 작업만 처리할 수 있다. 하지만 실제 자바스크립트는 여러 개의 HTTP 요청을 날리기도 하고, 마우스 클릭과 같은 이벤트, 애니메이션 효과 등 여러 개의 작업을 동시에 한다. 이렇게 동시성과 비동기를 처리할 수 있는 이유는 브라우저나 Node.js 처럼 자바스크립트 엔진을 구동하는 환경 덕분이다. ECMAScript에는 이벤트 루프에 대한 내용이 없다 (참고: meetup.toast.com/posts/89) V8 과 같은 자바스크립트 엔진은 단일 호출 스택 (콜스택)을 사용하며 해당 요청을 순차적으로 스택에 넣어 처리한다. 아래 그림에서 js안에 콜스택이라고 써진 부분이다. 일반 함수 처리는 여기서 처리한다. 출처: https://blog..