대량 엑셀 다운로드

대량 엑셀 다운로드
Photo by Mika Baumeister / Unsplash

대량 엑셀 다운로드를 구현하기 위해 시도한 시행착오를 정리해보았습니다 😊

기존 엑셀 다운로드 구성

  • Machine365의 '기록' 페이지를 렌더링 하기 위한 API 사용하여 데이터를 가져오고 가져온 데이터를 브라우저에서 엑셀파일로 구성해서 다운로드가 되는 방식이었습니다

기존 다운로드의 문제점

  • 기존 모니터링 데이터를 가져오는 API는 페이지를 렌더링하기 위해 페이지네이션이 적용되어 있었습니다
  • 따라서 엑셀로 구성하는 데이터 수에 비례해서 요청을 보내는 방식이었고 그 수가 많아지면 동시에 100건이 넘는 요청을 보내서 서버가 제대로 동작하지 못하는 이슈가 있었습니다

엑셀 다운로드 API 추가

  • 기존 문제점을 해결하기 위해 한번의 요청으로 백엔드 서버에서 엑셀 파일을 구성해서 내려주는 API를 추가하였습니다
  • Java 라이브러리 중 Apachi POI를 사용했습니다(XSSFWorkbook 사용)

엑셀 다운로드 API 문제점

  • 그림2와 같이 대량 데이터(e.g. 10만건)을 한번에 조회하는 경우 메모리 에러가 발생하는 것을 확인했습니다
  • 현재 저희 개발서버는 0.5G 메모리를 가지고 있고 10만건 데이터를 처리하기에 메모리가 부족했습니다
    • Spring은 최대 heap memory를 1/4까지 사용할 수 있습니다(0.5G / 4 => 125mb)
  • 처음엔 단순히 개발 서버의 메모리를 올리는 것을 생각했지만 메모리 스펙을 늘리면 클라우드 비용이 증가하기 때문에 다른방식으로 해결해야 했습니다

엑셀 다운로드 API 개선

그림 3. 개선한 엑셀 다운로드 API 구성도
  • 1. 엑셀 파일을 만들때 스트리밍 방식으로 작성
    • 기존에 XSSFWorkbook 대신 스트리밍 방식으로 만드는 SXSSFWorkbook 를 사용하였습니다
    • 하지만 10만건 데이터를 메모리에서 가져와서 들고있는 단계에서 여전히 메모리 이슈가 발생했습니다
  • 2. 데이터를 가져올 때 나눠서 가져오기
    • 엑셀을 스트리밍 방식으로 만들 수 있으므로 데이터를 한번에 다 가져올 필요가 없게 되었습니다
    • DB에서 데이터를 가져 올 때 페이지네이션을 적용해서 조금씩 가져와서 쓰는 방식으로 메모리 문제를 해결했습니다

참고

Read more

ISACA 2024 학술대회 발표자료

ISACA 2024 학술대회 발표자료

ISACA_2024_공동_학술대회_발표자료ISACA_2024_공동_학술대회_발표자료.pdf125 MBdownload-circle[2024. 11. 20.] 연세대, 2024 바른ICT연구소 리서치 콘퍼런스 성료 | 연세대학교연세대학교 * 키워드 * 데이터 * 신뢰 * 윤리 * 보안 * 2024 노벨상 * 물리학상, 제프리 힌튼 (인공지능, 컴퓨터 과학자) * 화학상, 데미스 허사비스 (구글 딥마인드) * 라인 경영권 이슈 * 데이터 주권 확보에 대한 노력 (경영권 분쟁이 아님.

By Hyonsok
3회 Digital ESG Conference 세미나 자료, 누빅스, 2024/10/24

3회 Digital ESG Conference 세미나 자료, 누빅스, 2024/10/24

DEA 컨퍼런스 행사 프로그램 순서DEA 컨퍼런스 행사 프로그램 순서.pdf503 KBdownload-circle[공유용] DEA 컨퍼런스 오프닝 및 DEA 업데이트_강명구[공유용] DEA 컨퍼런스 오프닝 및 DEA 업데이트_강명구.pdf3 MBdownload-circle[공유용] 콜린스_케이에너지세이브 발표자료[공유용] 콜린스_케이에너지세이브 발표자료.pdf3 MBdownload-circle[공유용]Digital ESG Alliance Conference_김정연[공유용]Digital ESG Alliance Conference_

By Hyonsok

Datadog Live Seoul 2024 (발표자료)

3개월 차 DevOps팀의 Datadog 활용 - 이병호 박상욱 김경보 김태수, 뉴넥스 & 이성욱, Datadog3개월 차 DevOps팀의 Datadog 활용 - 이병호 박상욱 김경보 김태수, 뉴넥스 & 이성욱, Datadog.pdf2 MBdownload-circle12년차 스타트업의 아키텍처 리팩토링 돌아보기 - 이정민, 드라마앤컴퍼니12년차 스타트업의 아키텍처 리팩토링 돌아보기 - 이정민, 드라마앤컴퍼니.pdf3 MBdownload-circleAsset-HighlightsDatadogLiveSeoul2024Asset-HighlightsDatadogLiveSeoul2024.pdf3 MBdownload-cir

By Hyonsok