자바스크립트 엔진은 코드를 평가해 스코프를 기준으로 실행 컨텍스트를 생성한다. 실행 컨텍스트는 전역 실행 컨텍스트를 시작으로 호출한 순서대로 실행 컨텍스트 스택(콜 스택)에 쌓인다. 콜 스택에 쌓인 실행 컨텍스트 중 최상위 실행 컨텍스트부터 처리해 코드를 실행하는데, 이렇게 하나의 콜 스택에서 모든 작업을 처리하는 방식을 싱글스레드 방식이라고 한다. 자바스크립트엔진은 싱글스레드 방식으로 동작한다. 작업(실행 컨텍스트)을 처리하는 방식은 동기 처리와 비동기 처리로 구분된다. 동기 처리 방식은 현재 실행 중인 작업을 모두 마치고 다음 작업을 실행한다. 코드가 의도한 순서대로 실행되지만, 실행중인 작업이 길어질 경우 다음 작업이 중단된다. 반면 비동기 처리 방식은 실행중인 작업이 종료되지 않은 경우에도 다음 ..