Web Worker로 오피스 문서 텍스트 추출 및 암호 해제하기
핵심 내용
Web Worker를 활용해 오피스 문서 텍스트 추출과 암호 해제를 병렬 처리하여 UI 프레임 드롭을 방지하고 성능을 개선하는 방법을 소개한다.
자세히 보기
자바스크립트의 싱글 스레드 한계를 극복하기 위해 Web Worker를 활용해 오피스 문서(doc, docx, hwp 등)의 텍스트 추출과 암호 해제를 병렬 처리하는 방식을 다룬다. 메인 스레드와 Worker 간 메시지 통신을 통해 바이너리 파일 핸들링 및 복잡한 계산을 분산함으로써 UI 렌더링 지연을 방지한다.
성능 테스트 결과, 500개의 파일을 변환할 때 Web Worker를 사용하지 않으면 CPU 사용률이 100% 근처에서 포화되며 프레임 드롭이 발생하지만, 4개의 Worker를 사용하는 Worker Pool 방식을 적용하면 CPU 사용률이 321%까지 상승하며 병렬 처리가 가능함을 확인했다. 10개 파일 변환 기준 Non-Worker는 0.3초, Worker는 0.1초가 소요되어 약 3배 빠른 속도를 보였다.
오피스 파일 구조는 2007년 이전의 OLE Compound Binary 구조와 이후의 OOXML 구조로 나뉘며, 각각 바이트 단위 명세나 ZIP 압축 해제 후 XML 파싱을 통해 텍스트를 추출한다. 암호가 걸린 OOXML 파일의 경우, encryptedInfo 파일에서 얻은 정보(대부분 SHA-512 알고리즘 사용)를 바탕으로 복호화 키를 생성한 뒤, encryptedPackage 파일을 4KB 단위로 복호화하여 원본을 복원한다. 이러한 프론트엔드 기반 처리는 서버 전송 없이 즉각적인 데이터 분석이 가능하고 개인 정보 보호 제약이 있는 환경에서도 유용하다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.