→ 프로그래밍 언어가 구동되는 환경
자바스크립트 런타임 종류: 웹 브라우저, Node.js, Deno, Bun 등
→ 이런 구성을 보완하기 위해 웹 브라우저의 Web API를 활용(비동기 요청 메소드, 이벤트 루프와 콜백 큐)
웹어셈블리?
→ 프로그래밍 언어를 컴파일하여 어느 브라우저에서나 빠르게 실행되는 형식으로 바꿔주는 기술.
자바스크립트의 실행 속도 부분을 보완해줌.
→ 비동기 콜백을 만드는 건 EVENT LOOP
웹브라우저는 단순한 런타임 그 이상의 기능을 제공하기 때문에 Web API를 이용해 동시성(비동기 처리)을 활용할 수 있다.
런타임 환경에 존재하는 별도의 API로, V8 엔진에 포함된 것은 아니다. Web API가 비동기 처리를 한다고 해서 스택에 쌓인 실행 코드 중간에 비동기 코드를 끼워넣는 방식은 아니며, Task Queue와 Call Back Queue를 활용해 처리한다.
function CallBackQueueSequence() {
console.log('하나');
setTimeOut(() => console.log('둘'), 0);
console.log('셋');
}
CallBackQueueSequence(); // 하나 셋 둘