시작할 때의 위치와 끝난 시각을 구별합니다
AI가 세 자료를 동시에 조회하는 코드를 설명한다고 합시다. 입력 목록에는 A·B·C가 놓였지만 응답은 B·C·A 순서로 왔습니다. 자바스크립트의 프라미스(Promise, 나중의 성공 값이나 실패를 나타내는 객체)를 묶는 프라미스 올(Promise.all)은 모두 성공하면 입력 위치에 맞춘 결과 배열을 제공합니다.
따라서 Promise.all([작업A, 작업B, 작업C])의 성공 결과는 [A의 값, B의 값, C의 값]입니다. 먼저 끝난 B가 첫 칸으로 이동하지 않습니다. 반환 배열의 첫 항목만 보고 ‘이 작업이 가장 빨랐다’고 설명하면 위치와 완료 순서를 혼동한 것입니다.
브라우저에서 세 프라미스를 직접 완료시킵니다
활동은 외부 서버를 호출하지 않습니다. 브라우저 안에 실제 프라미스 세 개를 만들고, 선택한 순서대로 성공 또는 실패시킵니다. 입력 순서와 완료 처리 순서를 따로 선택한 뒤 실행하세요. 완료 기록은 처리 순서를 보여 주고, 성공 결과는 입력 위치를 따릅니다.
기본값은 입력 A·B·C, 완료 B·C·A, 모두 성공입니다. 결과 배열은 A값·B값·C값이고 완료 기록은 B성공·C성공·A성공입니다. 입력만 C·A·B로 바꾸면 반환 배열은 C값·A값·B값이 됩니다. 같은 완료 순서에서도 배열 위치가 달라지는지 확인하세요.
배열 위치를 실제 자료 이름에 대응시킵니다
입력 목록을 C·A·B로 바꾼 뒤 결과의 첫 항목을 여전히 A의 값이라고 이름 붙이면 잘못된 자료를 연결하게 됩니다. 입력을 만드는 코드와 반환 배열을 읽는 코드를 함께 살펴야 합니다. 완료 속도가 달라진다는 이유로 위치 대응을 바꾸거나, 입력 목록이 바뀌었는데 예전 대응을 유지하는 두 경우를 구별하세요.
각 작업의 값에 자료 이름을 함께 넣으면 결과를 확인하는 데 도움이 됩니다. 활동도 단순한 숫자 대신 A값·B값·C값을 반환하여 대응을 드러냅니다. 실제 업무에서는 이 이름이 서로 구별되는지, 반환 자료의 이름이 요청한 자료와 맞는지도 확인해야 합니다. 배열 위치를 보존한다는 언어 규칙이 자료 내용의 정확성까지 보장하지는 않습니다.
하나가 실패했을 때도 범위를 확인합니다
B를 실패로 정하면 Promise.all 전체는 B의 실패로 거부됩니다. 성공 결과 배열을 받은 것처럼 일부 값을 나열할 수 없습니다. 활동은 이후 A·C의 처리도 계속하여 별도 기록에 보여 줍니다. 전체 거부가 다른 작업의 자동 취소를 뜻하지 않는다는 점을 관찰할 수 있습니다.
이 모형의 완료 순서는 사용자가 정합니다. 실제 네트워크 속도나 병렬 처리 성능을 측정하지 않습니다. AI가 코드를 설명할 때는 입력 목록, 각 항목과 결과 위치의 대응, 성공·실패 처리, 취소 장치가 있는지를 나누어 확인해야 합니다. 이번 활동은 프라미스의 외부 효과를 실행하지 않습니다.

