자바스크립트는 어떤 언어인가요?
논블로킹(Non-blocking) : 코드의 실행이 다른 코드의 실행을 막지 않는다.
싱글스레드(single thred) : 하나의 프로세스에서 오직 하나의 스레드로만 실행.
자바스크립트 = 논블로킹, 싱글스레드 언어

Call Stack: 자바스크립트 엔진이 코드실행을 위해 사용하는 스택 메모리 구조
(LIFO, Last In First Out)을 따른다.
Memory Heap: 동적으로 할당된 변수, 함수 등이 저장되는 공간
Wep Apis: 브라우저에서 제공하는 API들, 비동기적으로 실행되는 작업 관리
자바스크립트 엔진이 아닌 브라우저에서 제공해준다.
Callback Queue: 비동기적으로 실행된 함수들이 대기하는 공간
Task(Macro) Queue : setTimeout, setInterval, fetch, addEventListener 와 같이 비동기로 처리되는 함수들의 콜백 함수가 들어가는 큐
Microtask Queue : promise.then, process.nextTick, MutationObserver 와 같이 우선적으로 비동기로 처리되는 함수들의 콜백 함수가 들어가는 큐 (처리 우선순위가 높음)
Event Loop: 브라우저의 동작 타이밍을 관리해주는 관리자 역할
Call Stack이 비면 Callback Queue의 첫번째 콜백을 Call stack에 넣는다.