Moait
홈인기 피드모든 블로그모든 태그
홈인기 피드모든 블로그모든 태그
백오피스 엑셀 다운로드 속도 개선하기 섬네일

백오피스 엑셀 다운로드 속도 개선하기

트렌비 favicon트렌비·Backend·
JavaQueryDSLJPASXSSFWorkbookApache POI
2022년 08월 05일0

AI 요약

이 글은 AI가 요약했어요. 정확한 내용은 꼭 원문을 확인해 주세요!

핵심 요약

트렌비가 백오피스 엑셀 다운로드의 N+1 문제를 해결하고, QueryDSL 및 Projection으로 필요한 데이터만 조회한 뒤 SXSSFWorkbook으로 엑셀 시트를 생성하여 대용량 데이터 처리 성능과 메모리 효율을 크게 개선했습니다.

구현 방법

  • JpaSpecificationExecutor 제거 후 QueryDSL 기반의 데이터 조회와 Projection을 사용해 OrderItemExcelDownloadDto를 선별적으로 구성
  • 필요한 데이터만 조인하고, fetchJoin 대신 프로젝션으로 데이터 흐름 최적화
  • Apache POI의 SXSSFWorkbook으로 스트리밍 방식 엑셀 생성을 도입해 메모리 사용을 대폭 절감
  • 로컬 측정 기반으로 초기 다운로드 시간 2분 40초에서 6초로 감소, 엑셀 생성 시간은 2초에서 400ms로 단축

주요 결과

  • N+1 이슈 해결 후 다운로드 시간이 약 2분 40초에서 6초로 감소(약 97% 개선)
  • SXSSFWorkbook 도입으로 엑셀 생성 시간이 2초에서 400ms로 감소
  • 데이터가 30,000건일 때 XSSFWorkbook vs SXSSFWorkbook 차이가 약 16초에 달하는 차이를 확인
  • 대용량 데이터 처리 시 메모리 사용 효율이 개선되어 안정성 증가 가능성 제시

연관 피드

%가 높을수록 이 글과 비슷할 가능성이 높아요!
No Image
65%

Java 대용량 엑셀 다운로드 기능 구현

티몬 favicon티몬·2018년 10월 31일
새벽에 시작한 배치가 퇴근할 때 끝난다면? — 10시간짜리 숙소 연동 배치 20분 만에 끝낸 이야기(Spring Batch) 섬네일
64%

새벽에 시작한 배치가 퇴근할 때 끝난다면? — 10시간짜리 숙소 연동 배치 20분 만에 끝낸 이야기(Spring Batch)

반려생활 favicon반려생활·2025년 08월 28일
트렌비 리뷰 서비스의 성능 개선기 섬네일
63%

트렌비 리뷰 서비스의 성능 개선기

트렌비 favicon트렌비·2022년 09월 14일