[javascript] Lodash를 사용한 비동기 처리 패턴

Lodash는 JavaScript 유틸리티 라이브러리로, 다양한 기능을 제공하여 JavaScript 코드를 더 간결하게 작성할 수 있도록 도와줍니다. Lodash의 _.map, _.filter, _.forEach와 같은 함수들은 배열을 다루는데 특히 유용합니다. 이번 포스트에서는 Lodash를 사용하여 비동기 처리를 보다 간편하게 하는 방법을 살펴보겠습니다.

순차적으로 비동기 작업 수행하기

일련의 비동기 작업을 순차적으로 수행해야 하는 경우가 있습니다. 이때 Lodash의 _.map 함수를 활용하면 간단하게 해결할 수 있습니다. 아래는 각 요소에 대해 비동기 함수를 순차적으로 실행하는 예제 코드입니다.

const _ = require('lodash');

async function processArray(array) {
  for (const item of array) {
    await asyncFunction(item);
  }
}

// Usage
const items = [1, 2, 3];
processArray(items);

병렬로 비동기 작업 수행하기

반면에, 병렬로 비동기 작업을 처리해야 하는 경우에는 _.mapPromise.all을 함께 사용하여 간단히 처리할 수 있습니다. 아래 예제는 배열의 각 요소를 병렬로 처리하는 방법을 보여줍니다.

const _ = require('lodash');

async function parallelProcessArray(array) {
  await Promise.all(_.map(array, asyncFunction));
}

// Usage
const items = [1, 2, 3];
parallelProcessArray(items);

요약

Lodash는 배열을 다루는 작업을 보다 편리하게 도와주는 유틸리티 라이브러리입니다. 비동기 작업을 처리할 때, _.mapPromise.all을 함께 사용하면 간결하고 명확한 코드를 작성할 수 있습니다.

Lodash 공식 문서에서 더 많은 정보를 확인할 수 있습니다: Lodash 공식 문서