Skip to content
reader.me

기술 노트

reader.me 작동 원리

열어보는 모든 PDF는 절대 사용자의 기기를 벗어나지 않습니다. 이 페이지는 그게 아키텍처적으로 어떻게 가능한지, 그리고 30초 내에 직접 검증할 방법을 설명합니다.

짧은 버전

최신 브라우저는 거의 완전한 런타임을 탑재합니다: JIT JavaScript 엔진, WebAssembly, 2D 캔버스, 암호화, 파일 API, 영구 저장소. 데스크톱 PDF 편집기가 하는 모든 작업을 파일을 어디로도 보내지 않고 수행하기에 충분합니다.

reader.me는 약 4 MB의 JavaScript와 WebAssembly가 네 개의 오픈소스 라이브러리를 20개의 도구로 묶어낸 것입니다.

PDF를 드롭하면 일어나는 일

  1. 브라우저가 파일을 JavaScript에 직접 전달합니다.
  2. 바이트를 typed array로 읽습니다.
  3. 적절한 라이브러리가 작업을 수행: pdf-lib, PDF.js, Tesseract.js, Comlink Workers (20 MB 초과시).
  4. 결과는 다운로드가 됩니다.

왜 구조적 프라이버시인가

클라우드 서비스의 대부분의 "업로드 없음" 약속은 더 약한 의미를 가집니다: 서버가 몇 시간 후 파일을 폐기한다는 뜻입니다. 파일은 이미 그들의 서버에 도달했습니다.

reader.me에는 폐기할 "이후"가 없습니다. 시작부터 업로드가 없기 때문입니다.

분석은 어떻게 다루나요?

Google Analytics(지연 로딩)와 Cloudflare Web Analytics를 사용합니다. 어느 쪽도 PDF를 보지 못합니다 — URL 경로, 로케일, 표준 사용자 에이전트만 포함된 페이지뷰 비콘만 발생합니다.

로봇은 명시적으로 허용됩니다(GPTBot, ClaudeBot 등) — 스크랩할 문서 데이터가 없기 때문입니다.

30초 내에 직접 검증하세요

  1. DevTools를 엽니다(Windows의 F12, macOS의 ⌥⌘I) → Network 탭.
  2. 요청 목록을 지우고 "preserve log"를 체크합니다.
  3. Compress 도구에 PDF를 드롭하고 클릭.
  4. Network 패널을 봅니다. 파일을 운반하는 요청이 하나도 없습니다. 다운로드는 blob: URL로 도착합니다.

우리가 받아들이는 트레이드오프

브라우저에서 모든 것을 하는 것은 무료가 아닙니다. 정직한 한계 목록:

  • 파일 크기 상한 웹에서 파일당 50 MB.
  • 적격 전자서명 없음 (4단계).
  • OCR 언어 데이터가 큼 (~12 MB 첫 실행).
  • PDF/A는 선택 가능한 텍스트를 잃음.

관련

reader.me는 다음에 의한 아이디어입니다: David Carrero , Color Vivo Internet S.L.에서 제작.