한마디로
Scissor PDF는 여러분의 파일을 받지 않습니다. 도구를 열면 브라우저가 웹사이트와 PDF 엔진을 다운로드합니다. 파일을 선택하면 브라우저 탭의 메모리로 읽히고, 사용자의 프로세서에서 그 엔진이 처리한 뒤, 결과를 다운로드로 돌려드립니다. 탭을 닫으면 모든 것이 지워집니다.
무엇이 어디에서 실행되나요
PDF를 합치고, 분할하고, 순서를 바꾸고, 회전하고, 압축하고, 번호를 매기고, 워터마크를 넣고, 암호화하고 복호화하는 PDF 엔진은 오픈소스 lopdf 라이브러리를 사용해 Rust로 작성되었고 WebAssembly로 컴파일되었습니다. WebAssembly는 모든 최신 브라우저가 네이티브에 가까운 속도로 실행하는 샌드박스 형식입니다. 엔진은 백그라운드 워커에서 실행되므로 페이지가 버벅이지 않습니다.
페이지 미리보기와 PDF를 JPG로 변환하는 기능은 Firefox에 내장된 오픈소스 렌더러인 PDF.js를 사용하며, 역시 로컬에서 실행됩니다.
서버는 단순한 정적 파일 호스팅입니다. 업로드 엔드포인트도, 데이터베이스도, 애플리케이션 코드도 없으므로 문서를 받을 수 있는 것이 아무것도 없습니다.
직접 확인해 보세요
브라우저의 개발자 도구를 열고 네트워크 탭으로 이동한 뒤 아무 도구나 사용해 보세요. 페이지 자체의 파일이 로드되는 것은 보이지만, 문서를 담은 요청은 하나도 없습니다. 페이지가 로드된 뒤 인터넷 연결을 끊어도 모든 도구가 계속 작동합니다.
사이트는 엄격한 콘텐츠 보안 정책도 함께 보내, 브라우저가 페이지와 다른 서버의 통신을 차단하도록 합니다. 그래서 저희 코드에 실수가 있더라도 파일이 다른 곳으로 전송될 수 없습니다.
오프라인 작동, 앱처럼 설치
처음 방문한 뒤에는 서비스 워커가 사이트와 엔진을 브라우저 캐시에 저장하므로, 연결 없이도 도구가 열리고 작동합니다. Chrome이나 Edge에서는 주소 표시줄에서 설치를 선택하세요. Safari에서는 Dock에 추가(Mac) 또는 홈 화면에 추가(iPhone 및 iPad)를 선택하세요.
로컬 처리의 한계
작업이 기기에서 이루어지므로 아주 큰 파일은 기기의 메모리에 따라 제한됩니다. 일반적인 노트북에서는 수백 MB도 괜찮고, 휴대폰에서도 일상적인 문서는 처리할 수 있습니다. 속도는 서버 대기열이 아니라 사용자의 프로세서에 달려 있으며, 실제로는 업로드하고 다운로드하는 것보다 대개 더 빠릅니다.