JS는 싱글 쓰레드 자바스크립트의 메인 쓰레드인 이벤트 루프는 싱글 쓰레드이다. 하지만 이벤트 루프만 독립적으로 실행되지 않고 웹 브라우저나 NodeJS같은 멀티 쓰레드 환경에서 실행된다. 즉 JS는 싱글쓰레드지만 JS런타임은 싱글 쓰레드가 아니다. 싱글쓰레드로 병렬처리를 하는 방법. 기존 동기식 요청은 코드를 한줄 한줄 차례로 실행한다. 하지만 이렇게 되면 앞의 작업시간이 길수록 병목이 생기고 시간과 자원이 낭비된다. 요청이 완료될때까지 기다리지 않고 다른작업을 비동기 호출로 수행한다. JS의 비동기 런타임. Call Stack: 자바스크립트에서 수행해야 할 함수들을 순차적으로 스택에 담아 처리(메인 스택) Web API: 웹 브라우저에서 제공하는 API로 AJAX나 Timeout등의 비동기 작업을 실..