비동기 프로그래밍 동기 처리와 비동기 처리 자바스크립트 엔진은 싱글 스레드이기 때문에 처리에 시간이 걸리는 태스크가 있으면 블로킹이 발생함. setTimeout, setInterval, HTTP 요청, 이벤트 핸들러는 비동기 처리 방식으로 작동함. 이벤트 루프와 태스크 큐 js의 동시성을 지원하는게 이벤트 루프. 콜스택과 힙으로 구성됨. 콜스택 소스코드(전역 코드나 함수 코드 등) 평가 과정에서 생성된 실행 컨텍스트가 추가되고 제거되는 스택 자료구조인 실행 컨텍스트 스택이 바로 콜 스택이다. 함수를 호출하면 함수 실행 컨텍스트가 순차적으로 콜 스택에 푸시되어 순차적으로 실행된다. 자바스크립트 엔진은 단 하나의 콜 스택을 사용하기 때문에 최상위 실행 컨텍스트(실행 중인 실행 컨텍스트)가 종료되어 콜 스택에..