대용량 엑셀 다운로드에서 메모리를 늘려도 OOM이 반복되고, Apache POI 스트리밍 코드를 매번 직접 작성하는 비용이 크다. StreamSheet는 그 반복 작업을 어노테이션 하나로 걷어낸 Spring Boot 라이브러리다. OOM 없이 100만 행이 나간다 데이터를 한꺼번에 메모리에 올리지 않는다. JPA Stream이나 JDBC ResultSet으로 순차적으로 읽으면서 조회와 파일 작성을 동시에 진행한다. 가비지 컬렉터 부하가 일정하게 유지되고, 부하 테스트에서도 프로세스 점유율이 안정적이었다. 다양한 데이터베이스 환경을 지원하니 기존 프로젝트에 붙이는 데 제약이 없다. 어노테이션 하나로 끝난다 객체에 어노테이션을 붙이면 설정이 완료된다. Spring Boot Auto-configuration이 붙어 있어서 의존성 추가만으로 바로 동작한다. 반환 타입만 지정하면 내부 변환기가 스트림을 열고 데이터를 전송한다. 열 순서나 이름을 바꿀 때 설정값 한 줄만 수정하면 된다. 번호를 일일이 대조할 필요가 없고, Apache POI 보일러플레이트를 직접 유지보수하던 공수가 사라진다. 핵심만 뽑으면 JPA Stream과 JDBC ResultSet으로 순차 처리하니 100만 행 엑셀 다운로드에서 OOM이 나지 않는다 어노테이션 기반 선언적 방식이라 Apache POI 보일러플레이트를 직접 짤 필요가 없다 Spring Boot Auto-configuration을 지원하니 의존성 추가만으로 기존 프로젝트에 바로 붙는다 관련 글 Bronze 레이어 — 원본을 있는 그대로 쌓는다 — 대용량 데이터 적재 시 고려할 수집 전략 원문: https://news.hada.io/topic?id=27997