
프론트엔드
SpreadJS 엑셀 로딩 성능 최적화2
두줄요약
React와 TypeScript 기반 SpreadJS Excel 상세 화면의 초기 로딩 지연을 단계별 측정으로 분석했습니다. 모든 시트에 바인딩하던 구조를 필요한 시트만 처리하도록 바꿔 로딩 시간을 약 40~50% 줄였습니다.
문제 상황
- React와 TypeScript 기반 SpreadJS Excel 상세 화면의 초기 로딩 지연
- 28개 시트와 복잡한 수식 구조에도 파일 크기 축소만으로는 개선되지 않는 성능 문제
원인 분석
workbook.open()보다 이후 데이터 연결 단계에서 더 큰 시간 소요- 모든 시트에
setDataSource()를 반복 호출하는 구조로 인한 불필요한 처리 - 바인딩 경로가 없는 시트와 숨김 시트까지 동일한 바인딩 대상에 포함
해결 방법
- 로딩 과정을 단계별로 분리해 실행 시간 측정
BindingPath존재 여부와 시트 가시성을 기준으로 바인딩 대상 선별- 데이터 바인딩이 필요한 시트에만
setDataSource()적용
성능/운영 포인트
- 파일 용량 감소보다 불필요한 런타임 작업 제거가 효과적
- 시트 단위 측정을 통해 병목 구간 식별 가능
- 테스트 환경 기준 초기 로딩 시간 약 25~30초에서 15~20초로 단축
