Nuxt와 OPFS를 사용하여 로컬 우선 PDF 툴킷을... 노트

Nuxt와 OPFS를 사용하여 로컬 우선 PDF 툴킷을 구축한 이유

주류 PDF 도구는 사용자에게 민감한 문서를 원격 서버에 업로드하도록 요구하며, 전송 중 암호화에도 불구하고 개인 정보 보호 및 규제 문제를 야기합니다. 이를 해결하기 위해 100% 클라이언트 측 프로그레시브 웹 앱인 beePDF는 문서를 브라우저 내에서 완전히 처리하며, 절대 업로드하지 않습니다. 기술 스택에는 Nuxt, @vite-pwa/nuxt, pdf-lib, PDF.js, Pico CSS가 포함됩니다. 주요 혁신은 로컬 영속성을 위해 Origin Private File System(OPFS)을 사용하는 것입니다. OPFS는 빠르고 바이트 수준의 액세스를 제공하는 개인적이고 오리진 범위의 파일 시스템으로, PDF와 같은 대형 바이너리 파일에 이상적입니다. 권한 프롬프트를 제거하고 성능을 위해 Web Worker에서 동기식 액세스를 제공합니다. 처리 파이프라인은 파일을 메모리로 읽어 OPFS에 저장하고, 무거운 작업은 Web Worker로 오프로드합니다. 메타데이터와 썸네일은 IndexedDB에 저장됩니다. 문서 수정은 직접 클라이언트 다운로드를 트리거하여 오프라인 기능을 보장합니다. 과제에는 매우 큰 파일에 대한 브라우저 메모리 제한과 UI 차단을 방지하기 위해 집중적인 작업을 Web Worker로 오프로드해야 하는 필요성이 포함됩니다.