[Apache POI] 대용량 Excel 다운로드 시 발생하는 GC 문제와 SXSSFWorkbook 기반 실무 리팩토링
·
Back-end/Java(+spring)
1. 문제 개요레거시 시스템에서 XSSFWorkbook을 사용해 수만~수십만 건의 데이터를 Excel로 다운로드하는 기능이 구현된 경우, 다음과 같은 문제가 빈번히 발생한다.서버 응답 지연: 수 초에서 수십 초 이상의 처리시간 소요OutOfMemoryError: Heap memory 초과 발생Full GC 빈도 상승: 전체 시스템 성능 저하 초래이러한 문제는 특히 인증서, 보고서, 거래 내역 등의 정기적 대량 다운로드 기능이 존재하는 시스템에서 자주 나타난다. 2. 기술적 원인 분석2.1 XSSFWorkbook의 구조적 한계모든 데이터를 메모리 상에서 유지하고, 최종적으로 한 번에 flush10만 건 이상의 row를 처리할 경우 수백 MB~1GB 이상의 Heap 공간 사용Java의 Young GC/Ful..