자바스크립트와 비동기 처리 대부분의 프로그래밍 언어는 함수의 실행을 Stack구조를 사용해 처리한다. 이렇게 쓰이는 Stack을 Call Stack이라고 하는데, JS는 하나의 Call Stack을 사용한다. 즉 함수의 실행을 하나의 쓰레드가 관리한다. (모든 연산을 싱글 쓰레드로 처리하는게 아니다. 만약 그렇다면 많은 사람들이 js를 사용하지 않을 것이다.) 이런 구조에서 정직하게 Call stack 들어온 작업을 순서대로 하나하나 처리한다면, 중간에 시간이 오래 걸릴 수 있는 작업(Ex 서버와의 통신 등 )이 들어왔을 때 버벅거릴 것이다. 물론 사용자에게 그런 꼴을 보여줄 수는 없다. 그렇기 때문에 JS를 사용하는 API들은 JS Call stack에서 넘겨받은 작업을 비동기적으로 처리한 뒤, 이벤트로 알려주는 방식을 채택하는 경향이 있다. 이러한 구조를 이