본문 바로가기
컴퓨터 활용(한글, 오피스 등)/기타

XSSF, SXSSF, 그리고 SAX 비교

by 3604 2025. 7. 3.
728x90
XSSF, SXSSF, 그리고 SAX는 Apache POI 라이브러리에서 엑셀 파일을 다루는 서로 다른 방식입니다. XSSF는 메모리 상에서 엑셀 파일을 객체화하여 처리하는 반면, SXSSF는 대용량 파일 처리에 최적화된 스트리밍 방식을 사용하며, SAX는 이벤트 기반으로 엑셀 파일을 읽어들이는 방식입니다.
 
XSSF (XML Spreadsheet Format):
 
  • 장점:
    엑셀 파일의 모든 내용을 메모리에 로드하여 처리하므로 다양한 기능 (읽기, 쓰기, 편집 등)을 지원합니다.
  • 단점:
    큰 파일의 경우 메모리 부족으로 OOM(Out of Memory) 오류가 발생할 수 있습니다.
  • 사용 사례:
    작은 엑셀 파일이나 비교적 적은 양의 데이터를 다룰 때 유용합니다. 
     
SXSSF (Streaming SXSSF):
 
  • 장점: 일정 행 수만큼 메모리에 데이터를 올리고, 해당 행 수가 차면 임시 파일로 저장하여 디스크에 기록하는 방식으로 메모리 사용량을 최소화합니다. 대용량 엑셀 파일 처리에 특화되어 있습니다.
  • 단점: 쓰기만 지원하며, 읽기는 지원하지 않습니다.
  • 사용 사례: 대용량 엑셀 파일을 생성하거나, 메모리 사용량이 제한적인 환경에서 유용합니다. 
     
SAX (Simple API for XML):
 
  • 장점:
    이벤트 기반으로 엑셀 파일을 읽어들이므로 메모리 효율성이 매우 높습니다. 대용량 파일 처리 시 XSSF보다 더 나은 성능을 보입니다.
  • 단점:
    구현이 복잡하고, 특정 부분만 읽어들이는 것이 어려울 수 있습니다.
  • 사용 사례:
    대용량 엑셀 파일에서 특정 데이터만 추출하거나, 데이터 분석 등에 유용합니다.
     
    출처: AI
728x90