그알것 — 그럼에도 알아야 할 것들
홈질문커뮤니티
로그인
그알것 — 그럼에도 알아야 할 것들

Service

  • 홈
  • 소개
  • 질문
  • 커뮤니티

My

  • 내 워크스페이스
  • 저장한 질문
  • 작성한 답변

Policy

  • 이용약관
  • 개인정보처리방침
  • 문의

© 2026 그알것 · What Still Matters

질문 목록JavaScript
JavaScript

이벤트 루프에 대해서 설명해주세요

실무4/5
설계2/5
인간4/5
기초5/5

면접관의 질문 의도

실행 순서를 머릿속에서 그릴 줄 아는지, 아니면 '비동기는 setTimeout이다' 수준에서 멈춰 있는지를 가른다. 마이크로태스크 우선순위를 짚으면 거기서부터 깊이를 더 따져 본다.

큐레이션 답변

학습 자료

자바스크립트는 단일 스레드 위에서 콜 스택으로 코드를 실행하고, 이벤트 루프는 스택이 비워진 순간마다 큐에서 다음 작업을 꺼내 올린다. setTimeout(fn, 0)도 즉시 실행이 아니라 현재 스택이 비고 큐 차례가 돌아온 뒤 실행된다. 마이크로태스크 큐(Promise.then 등)는 매크로태스크 큐(setTimeout 등)보다 먼저 비워지므로, 두 큐가 섞인 코드의 출력 순서는 이 우선순위로 갈린다.

좋은 답변 구조

  1. 01콜 스택·태스크 큐·이벤트 루프 세 요소와 각자의 역할을 먼저 잡는다
  2. 02스택이 비워지면 큐에서 작업을 꺼낸다는 한 사이클의 흐름을 단계별로 짚는다
  3. 03마이크로태스크가 매크로태스크보다 먼저 비워진다는 우선순위를 짧은 예시로 보여준다
  4. 04긴 동기 코드가 큐를 막을 때 UI가 어떻게 멈추는지로 한계를 연결한다

자주 실수하는 포인트

setTimeout(fn, 0)을 즉시 실행으로 착각한다
마이크로태스크와 매크로태스크의 우선순위를 헷갈리거나 아예 모른다
콜 스택이 비워져야 큐가 돌아간다는 조건을 빼먹고 설명한다

실무 맥락

  • Promise 체인과 setTimeout, 이벤트 핸들러가 한 흐름에 섞여 있는 UI 코드
  • 입력 반응이 한 틱씩 늦거나 렌더가 끊겨 보이는 프런트엔드 성능 디버깅 현장
  • 비동기 로그 순서가 예상과 어긋나 테스트가 깨지는 상황

본인 경험에 녹이는 힌트

예상과 다른 콘솔 출력 순서를 디버깅하다 마이크로태스크 우선순위를 처음 깨달은 경험이 있다면 그 디버깅 과정을 그대로 답변 흐름으로 풀 수 있다

긴 동기 작업이 UI를 멈추게 한 적이 있다면 작업을 setTimeout이나 requestIdleCallback으로 쪼개 응답성을 회복시킨 사례와 연결할 수 있다

Promise.then 안에서 또 Promise를 만들거나 setTimeout과 섞었을 때 순서가 헷갈렸던 코드 리뷰 경험을 큐 우선순위 설명에 끼워 넣을 수 있다

커뮤니티 인기 답변

전체 0개

아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.

관련 꼬리 질문

Q1queueMicrotask와 Promise.then의 차이는 무엇인가요
Q2requestAnimationFrame은 이벤트 루프와 어떻게 상호작용하나요
Q3긴 동기 작업이 이벤트 루프에 미치는 영향은 무엇인가요
아직 답을 쓰지 않았어요.
큐레이션 답변과 다른 사람 답변을 보고, 자기 언어로 답을 정리해보면 학습 효과가 가장 큽니다.
목차
  • 01면접관의 질문 의도
  • 02큐레이션 답변
  • 03좋은 답변 구조
  • 04자주 실수하는 포인트
  • 05실무 맥락
  • 06본인 경험에 녹이는 힌트
  • 07커뮤니티 인기 답변준비중
  • 08관련 꼬리 질문