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

Fanta Lab

질문 29 · 실전 면접 답변

비동기 흐름을 순서대로 읽히게 작성하려면 어떻게 할까요?

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

비동기 작업을 위에서 아래로 자연스럽게 읽히도록 작성하려면 async 함수 안에서 await 키워드를 사용해 각 단계의 Promise 결과를 받아 다음 줄로 이어가면 됩니다. 이때 앞 단계의 결과가 꼭 필요한 의존 작업은 순차적으로 await하고, 서로 영향을 주지 않는 독립적인 요청들은 먼저 동시에 시작한 뒤 Promise.all로 묶어 한 번에 await하는 것이 좋습니다. 또한 실패 처리와 로딩 해제는 try/catch/finally 블록으로 한곳에 모아 관리하면 예외 경로까지 명확하게 드러납니다.

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

  1. await는 코드를 동기식처럼 읽히게 해 줄 뿐 실제로는 해당 함수만 일시 중단하고 완료 시 마이크로태스크로 재개하는 비동기 방식입니다.
  2. while 루프로 시간을 끄는 식(busy waiting)으로 비동기를 억지로 멈춰 세우면 메인 스레드가 막혀 완료 콜백조차 실행되지 못합니다.

면접에서 자주 하는 실수

코드가 동기 흐름처럼 보인다고 해서 실제로 스레드를 블로킹하며 기다리는 동기 실행으로 바뀐 것은 아닙니다.

원리와 예제까지 읽기

공식 참고 자료

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

← JavaScript