이벤트 루프(Event Loop)를 설명해 주세요.
싱글 스레드인 JS가 콜 스택과 큐를 오가며 비동기 작업을 처리하는 구조입니다.
자바스크립트는 싱글 스레드라 한 번에 하나의 작업만 합니다. 비동기 콜백은 태스크 큐에 쌓이고, 이벤트 루프가 콜 스택이 비면 큐에서 꺼내 실행합니다. 마이크로태스크(Promise)가 매크로태스크(setTimeout)보다 먼저 처리됩니다.
핵심 포인트
- 싱글 스레드 + 비동기
- 마이크로태스크 우선(Promise)
- setTimeout은 매크로태스크