[typescript] 비동기 작업을 병렬로 수행하는 방법
병렬로 비동기 작업을 수행하는 것은 성능을 향상시킬 수 있는 중요한 기술입니다. TypeScript에서는 이를 위해 여러 가지 방법을 제공하고 있습니다. 이번 포스트에서는 Promise.all, async/await을 이용한 방법에 대해 알아보겠습니다.
Promise.all을 이용한 병렬 처리
Promise.all은 여러 개의 Promise를 병렬로 처리할 수 있도록 해줍니다. 이를 통해 병렬로 여러 개의 비동기 작업을 수행하고, 그 결과를 기다릴 수 있습니다. 아래는 Promise.all을 이용한 예제 코드입니다.
async function parallelAsyncTasks() {
const result = await Promise.all([
asyncTask1(),
asyncTask2(),
asyncTask3()
]);
return result;
}
위의 코드에서는 asyncTask1, 2, 3이 각각 병렬로 실행되고, 그 결과를 모두 기다린 후에 result에 배열로 담겨 반환됩니다.
async/await을 이용한 병렬 처리
또 다른 방법으로 async/await을 이용한 병렬 처리도 가능합니다. 아래는 async/await을 이용한 예제 코드입니다.
async function parallelAsyncTasks() {
const result1 = asyncTask1();
const result2 = asyncTask2();
const result3 = asyncTask3();
const results = await Promise.all([result1, result2, result3]);
return results;
}
위의 코드에서도 asyncTask1, 2, 3이 각각 병렬로 실행되고, Promise.all을 통해 그 결과를 기다린 후에 배열로 반환됩니다.
마치며
이번 포스트에서는 TypeScript에서 비동기 작업을 병렬로 처리하는 두 가지 방법에 대해 알아보았습니다. Promise.all과 async/await을 활용하여 병렬로 작업을 처리하면 성능 향상에 도움이 될 뿐만 아니라 코드도 간결하게 작성할 수 있습니다.
참고자료: