11P by danpung2 19시간전 | ★ favorite | 댓글 2개

안녕하세요, StreamSheet를 만든 개발자입니다.

실무에서 엑셀 내보내기 구현 시 OOM (OutOfMemory) 이슈가 자주 발생했었고, 발생할 때마다 개별적인 수정을 진행했었습니다.
엑셀 내보내기 기능을 만들 때마다 반복적으로 보일러플레이트를 작성해야 했었습니다.
위 문제들을 실무에서 반복적으로 겪으면서 간단하게 대용량 데이터를 엑셀 파일로 내보낼 수 있는 SDK를 만들고자 하게 되었습니다.

[프로젝트 목표]

메모리 안정성: JPA Stream, JDBC ResultSet, MongoDB Cursor 등을 통한 100만 행 이상의 데이터 내보내기에서 OOM 없이 안정적으로 동작
사용성: DTO에 @ExcelSheet, @ExcelColumn 붙여 간단한 컬럼 정의
통합성: Spring Boot Auto-configuration 으로 바로 사용 가능

확인해보시고 피드백 주시면 감사하겠습니다..

엑셀에 최대 행수가 있어서
대용량일경우 csv가 낫지않나요

말씀하신 것처럼 엑셀은 약 104만 행의 최대 행 수 제한이 있어, 대용량 데이터의 경우 CSV가 더 적합한 선택일 수 있고, 저 역시 CSV를 선호하는 편입니다.

다만, 내보내기 기능을 요청해 주셨던 분들 대부분이 엑셀 포맷을 선호하시다보니, 그 과정에서 반복적인 코드 작성과 OOM 문제를 줄이고자 시작한 프로젝트입니다.

의견 감사합니다!