질문 7 · 실전 면접 답변
Promise의 상태와 Promise.all의 동작은 무엇인가요?
이렇게 답해 보세요 (핵심 답변)
Promise는 비동기 작업의 최종 결과를 나타내는 객체로, 대기(pending) 상태에서 시작해 이행(fulfilled) 또는 거부(rejected) 중 하나로 한 번만 결정됩니다. 이후 then과 catch를 통해 성공과 실패 후속 처리를 체인으로 연결할 수 있습니다. 여러 비동기 작업을 묶는 Promise.all은 전달된 모든 Promise가 이행되면 완료 순서와 상관없이 입력한 순서대로 결과 배열을 반환하고, 하나라도 거부되면 전체 결과 Promise를 즉시 거부 상태로 만듭니다.
함께 설명하면 좋은 이유 (꼬리질문 대비)
- 각 작업이 끝나는 시점이 달라도 Promise.all의 결과 배열 순서는 처음 전달한 배열의 인덱스와 일치합니다.
- 서로 의존하지 않는 독립 작업들은 먼저 동시에 시작한 뒤 Promise.all로 묶어야 불필요한 순차 대기를 피할 수 있습니다.
면접에서 자주 하는 실수
Promise.all은 하나가 실패해 거부되더라도 이미 진행 중인 나머지 요청이나 작업을 자동으로 취소해 주지는 않습니다.
원리와 예제까지 읽기
공식 참고 자료
질문 목록 출처 ↗ · 원본 7번을 바탕으로 질문과 답변을 새로 정리했습니다.