[typescript] 비동기 이터레이션과 await for...of 문을 사용한 데이터 통계 처리 방법

본 포스트에서는 TypeScript에서 비동기 이터레이션의 개념과 await for…of를 사용하여 데이터 통계를 처리하는 방법에 대해 다룹니다.

비동기 이터레이션

일반적으로 배열이나 맵과 같은 자료구조의 요소를 열거하기 위해서는 for…of 루프를 사용합니다. 하지만, 비동기 작업을 수행해야 하는 경우에는 좀 더 복잡해집니다. TypeScript에서는 비동기 이터레이션을 통해 이 문제를 해결할 수 있습니다.

예를 들어, 데이터베이스에서 많은 양의 데이터를 가져와 각 데이터를 처리해야 하는 상황을 가정해 봅시다. 이러한 경우에는 데이터를 일괄적으로 불러오는 대신 비동기적으로 한 번에 하나의 데이터를 가져오고 처리할 수 있는 방법이 필요합니다.

await for…of 사용하기

TypeScript에서는 for...of 루프를 await 키워드와 함께 사용하여 비동기 이터레이션을 수행할 수 있습니다. 아래의 예제 코드를 통해 이를 살펴봅시다.

async function processData(data: AsyncIterable<Data>) {
  let sum = 0;
  let count = 0;

  for await (const item of data) {
    sum += item.value;
    count++;
  }

  const average = sum / count;
  console.log(`평균: ${average}`);
}

위 코드에서 processData 함수는 AsyncIterable 타입의 데이터를 받아와 각 데이터의 합과 개수를 계산한 뒤, 평균을 콘솔에 출력하는 예제입니다.

결론

비동기 이터레이션과 await for...of를 사용하면 대규모의 비동기 데이터를 효율적으로 처리할 수 있습니다. 데이터베이스나 외부 API와 같은 비동기 작업을 다루는 경우에 유용하게 활용할 수 있는데, 이러한 패턴을 잘 활용하여 코드를 작성하는 것이 중요합니다.

이상으로 TypeScript에서 비동기 이터레이션과 await for...of를 사용한 데이터 통계 처리 방법에 대해 알아보았습니다.

참고 자료