[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을 활용하여 병렬로 작업을 처리하면 성능 향상에 도움이 될 뿐만 아니라 코드도 간결하게 작성할 수 있습니다.

참고자료: