논리적 사고

Promise.all의 결과는 먼저 끝난 작업부터 놓일까?

프라미스 올의 입력 순서와 작업이 끝나는 순서를 따로 바꾸어, AI가 반환 배열의 위치를 어떻게 읽어야 하는지 시험합니다.

입력 A·B·C와 완료 B·C·A를 서로 다른 줄에 놓고 성공 반환 배열은 입력 위치 A·B·C를 따른다고 표시한 관계도
입력 A·B·C와 완료 B·C·A를 서로 다른 줄에 놓고 성공 반환 배열은 입력 위치 A·B·C를 따른다고 표시한 관계도
그림 크게 열기 ↗SVG 저장

그림에서 무엇을 볼까요?

입력 A·B·C와 완료 B·C·A를 서로 다른 줄에 놓고 성공 반환 배열은 입력 위치 A·B·C를 따른다고 표시한 관계도

AI가 세 자료를 동시에 조회하는 코드를 설명한다고 합시다. 입력 목록에는 A·B·C가 놓였지만 응답은 B·C·A 순서로 왔습니다. 자바스크립트의 프라미스(Promise, 나중의 성공 값이나 실패를 나타내는 객체)를 묶는 프라미스 올(Promise.all)은 모두 성공하면 입력 위치에 맞춘 결과 배열을 제공합니다.

따라서 Promise.all([작업A, 작업B, 작업C])의 성공 결과는 [A의 값, B의 값, C의 값]입니다. 먼저 끝난 B가 첫 칸으로 이동하지 않습니다. 반환 배열의 첫 항목만 보고 ‘이 작업이 가장 빨랐다’고 설명하면 위치와 완료 순서를 혼동한 것입니다.

함께 확인할 점

기본 조건으로 실행하여 입력 순서·완료 기록·반환 배열 세 줄을 비교합니다. 완료 순서는 유지하고 입력만 CAB로 바꿔 다시 실행합니다. B 실패를 선택해 전체 결과와 나머지 완료 기록을 확인한 뒤 초기화합니다.

생각해 볼 질문

AI에게 세 비동기 작업 코드를 검토시킬 때, 완료 순서와 반환 위치를 구별하게 할 확인 질문을 하나 적으세요.

← 논리적 사고 그림 더 보기