본문으로 바로가기
COMMUNITY모든 이야기

JS reduce로 대용량 배열 그룹핑 시 메모리 누수 및 속도 저하 문제

빗방울 2026.10.30 10:45 2분 읽기 조회 11 · 추천 1

API로 받아온 10만 건 이상의 사용자 로그 데이터를 특정 키 기준으로 그룹핑하여 분석하려 합니다.

코드:

const data = Array.from({ length: 100000 }, (_, i) => ({
  userId: `user_${i % 1000}`,
  value: Math.random()
}));

const result = data.reduce((acc, cur) => {
  if (!acc[cur.userId]) {
    acc[cur.userId] = [];
  }
  acc[cur.userId].push(cur.value);
  return acc;
}, {});

console.log(Object.keys(result).length);

오류: 데이터 양이 늘어날수록 처리 시간이 기하급수적으로 증가하며, 특정 시점에서 `FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory` 발생.

시도: `Map` 객체 사용 및 `forEach` 루프로 변경해봤으나 결과 동일함.

질문: JS 환경에서 이 정도 규모의 데이터 그룹핑 시 메모리 효율을 높일 수 있는 최적의 방법이 무엇입니까?

모든 이야기1478

가벼운 안부부터 깊은 생각까지, 함께 나눠요.

글쓰기
총 1478개의 이야기
댓글