학습 공간 개념 · 판단 · 실험

Fanta Lab

질문 25 · 실전 면접 답변

동기와 비동기 실행은 결과 처리 순서가 어떻게 다른가요?

이렇게 답해 보세요 (핵심 답변)

동기 실행은 한 작업이 완전히 끝난 뒤에야 그다음 줄 코드로 넘어가는 순차적인 실행 방식이고, 비동기 실행은 시간이 걸리는 작업을 요청해 둔 뒤 다음 코드를 먼저 진행하고 작업이 완료되면 등록해 둔 콜백이나 Promise를 통해 후속 처리를 이어가는 방식입니다. 브라우저에서는 네트워크 요청이나 타이머 대기는 호스트 환경이 처리하지만, 완료 후 실행되는 JavaScript 콜백들은 이벤트 루프 규칙에 따라 메인 스레드에서 하나씩 순서대로 실행됩니다.

함께 설명하면 좋은 이유 (꼬리질문 대비)

  1. 이미 완료된 Promise의 then 콜백이라도 현재 실행 중인 동기 코드가 모두 끝난 뒤 마이크로태스크 단계에서 실행됩니다.
  2. 앞선 결과가 필요한 의존 작업은 await로 순차 연결하고, 서로 독립적인 작업은 동시에 시작한 뒤 결과를 합치는 것이 효율적입니다.

면접에서 자주 하는 실수

비동기 실행(작업 완료 시점을 나중에 조율함)과 멀티스레드 병렬 실행(여러 CPU 코어에서 동시에 연산함)을 같은 뜻으로 혼동하지 않아야 합니다.

원리와 예제까지 읽기

공식 참고 자료

질문 목록 출처 ↗ · 원본 25번을 바탕으로 질문과 답변을 새로 정리했습니다.

← JavaScript