목록 보기
POI에서 DsExcel로: SpreadJS 연동 가이드
백엔드

POI에서 DsExcel로: SpreadJS 연동 가이드

넥스트리
넥스트리
2026년 10월 7일

두줄요약

Apache POI의 메모리·수식·템플릿 처리 한계를 DsExcel과 SpreadJS 연동으로 비교했습니다. JSON 기반 무손실 서식 교환과 대용량·복잡 수식 처리 전략을 제시했습니다.

문제 상황

  • Apache POI 기반 대용량 엑셀 처리에서 OOM·GC 스파이크와 스트리밍 제약
  • 다중 헤더·트리형 템플릿·병합 셀 및 고급 수식의 수동 좌표·스타일 관리 부담
  • SpreadJS 화면 서식과 백엔드 엑셀 간 동기화 과정의 손실·복잡성

구조와 흐름

  • SpreadJS의 JSON 직렬화 결과를 DsExcel fromJson으로 로드하고 데이터 바인딩·수식 재계산 수행
  • toJson 또는 XLSX·PDF 렌더링으로 서버 처리 결과 전달
  • 비동기 큐 파이프라인과 try-with-resources 기반 워크북 자원 해제로 대용량 처리 안정성 관리

선택 이유

  • DsExcel의 인메모리 최적화, 랜덤 액세스, Excel 호환 수식 엔진 및 선언형 템플릿 지원
  • SpreadJS JSON 포맷 공유를 통한 헤더 스팬·조건부 서식·유효성 검사 규칙 보존
  • 템플릿 마커 기반 동적 행 확장·셀 병합으로 트리형 데이터 생성 자동화

트레이드오프

  • 단순·소규모·고정 양식 익스포트와 비용 제약 환경에서는 Apache POI 유지 가능
  • WYSIWYG, 복잡한 템플릿, 서버 수식 검증, POI OOM 문제 환경에서는 DsExcel 전환 권장
  • 오픈소스 Apache POI 대비 상용 라이선스 비용 고려 필요

다음 읽기

#SpreadJS 주제를 이어서 읽기

SpreadJS 파일 올바르게 로드하기

SpreadJS 파일 형식별로 올바른 로딩 API를 매칭하는 방법을 정리했습니다. 확장자와 데이터 형태를 구분해 import()와 fromJSON()을 적용하면 파싱 오류를 줄일 수 있었습니다.

넥스트리
넥스트리
프론트엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...