본문 바로가기
Q&A해결2025년 3월 15일1분 읽기

Node.js에서 대용량 JSON 파일 읽을 때 메모리 부족 에러 — 스트림 처리 방법

프
프론트수진
조회 555댓글 2

500MB JSON 파일을 읽으려는데 메모리 초과 에러가 납니다.

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

JSON.parse(fs.readFileSync(...))로 읽고 있습니다.

댓글 2

김김영삼1년 전

대용량 JSON은 전체를 메모리에 올리면 안 됩니다. 스트림 파싱을 사용하세요:

// jsonstream 또는 stream-json 패키지 사용
const { parser } = require('stream-json')
const { streamArray } = require('stream-json/streamers/StreamArray')
const fs = require('fs')

const pipeline = fs.createReadStream('large.json')
.pipe(parser())
.pipe(streamArray())

pipeline.on('data', ({ value }) => {
// 한 건씩 처리 — 메모리 절약
processItem(value)
})
pipeline.on('end', () => console.log('완료'))

이렇게 하면 500MB 파일도 수십 MB 메모리로 처리할 수 있습니다.

프프론트수진1년 전
덕분에 완벽히 해결했습니다! 감사합니다 🙏
Ctrl+Enter로 등록