# streaming API를 사용한 네이버페이의 대형 XLSX 파일 다운로드 구현

> Clean Markdown view of GeekNews topic #4050. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=4050](https://news.hada.io/topic?id=4050)
- GeekNews Markdown: [https://news.hada.io/topic/4050.md](https://news.hada.io/topic/4050.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2021-04-11T10:06:54+09:00
- Updated: 2021-04-11T10:06:54+09:00
- Original source: [d2.naver.com](https://d2.naver.com/helloworld/9423440)
- Points: 14
- Comments: 3

## Topic Body

- JavaScript로 XLSX 파일 생성하기

ㅤ→ ExcelJS 를 선택 : XLSX 스트리밍 지원, 서식 제공, row 한개씩 메모리에서 flush 가능

- Java POI vs. ExcelJS

- Tomcat에서 Node.js로 데이터 주기 : spring-webflux 를 이용, Node.js로 row 한 개씩 streaming

- POI를 ExcelJS로 교체하며 발생했던 이슈

## Comments



### Comment 4837

- Author: galadbran
- Created: 2021-04-11T10:29:24+09:00
- Points: 1

아니, 원문의 댓글에 mysql 기준으로 설명해주신 분이 있네요!! (등잔밑이 어둡다... ㅠㅠ)

### Comment 4836

- Author: galadbran
- Created: 2021-04-11T10:16:26+09:00
- Points: 1

양을 알 수 없는 큰 데이터인데 db에서는 그냥 페이징(offset과 limit 같은 거겠죠?) 없이  select * 해버리고 프로듀서 쓰레드를 재웠다 깨웠다 하면서 데이터를 읽는다는 게 멋져보이면서도 그게 되나? 하는 생각이...

이 부분을 잘 알고 싶은데 대량 데이터를 읽으려면 대부분 페이징을 하라는 자료만... ^^;

### Comment 4835

- Author: xguru
- Created: 2021-04-11T10:07:14+09:00
- Points: 1

관리도구에서 엑셀파일 내려받기 기능은 종종 이용하는 기능인데, ExcelJS 를 이용한 예처럼 누르자마자 다운로드가 시작되는건 사용자 경험에 정말 중요할 듯
