PDF Toolkit
파일이 사용자의 기기를 절대 벗어나지 않는 브라우저 기반의 PDF 병합, 분할, 구성, 변환 및 압축 제품군입니다.
Next.js 16
React 19
Tailwind CSS 4
pdf-lib
PDF.js
Ghostscript (WASM)
dnd-kit
JSZip

개요
PDF Toolkit은 iLovePDF 같은 도구에 대한 클라이언트 측 대안입니다. 파일 병합, 페이지 추출, 재정렬 및 회전, 이미지 변환, 압축 등 사용자들이 자주 찾는 일상적인 PDF 작업을 모두 브라우저 내에서 직접 처리합니다. 어떤 파일도 서버에 업로드되지 않습니다. 마케팅 사이트와 도구 카탈로그는 각각 독립적인 도구로 구성된 실제 작업 공간들로 연결됩니다.
문제점
기존의 대중적인 온라인 PDF 도구들은 모두 같은 방식으로 작동합니다. 문서를 서버에 업로드하고, 서버에서 처리한 뒤 결과를 다운로드하는 식입니다. 단순한 이미지 변환이라면 괜찮지만, 서명된 계약서, 신분증 스캔본, 의료 서식, 금융 거래 내역서 같은 민감한 문서를 제3자에게 넘기며 그들의 데이터 보관 정책을 신뢰해야 한다는 뜻이기도 합니다. 사용자의 로컬 기기에서 모든 파일을 안전하게 보관하면서도 동일한 작업을 수행하는 도구에 대한 시장의 요구가 분명히 존재했습니다.
내 역할 및 접근 방식
마케팅 사이트, 도구 카탈로그, 그리고 실제 구동되는 모든 도구에 이르기까지 제품 전체를 직접 구축했습니다. 아키텍처의 핵심 결정은 모든 실질적인 PDF 작업을 브라우저에서 직접 수행하는 것이었습니다. 클라이언트 측 처리를 채택함으로써 서버 운영 부담과 파일별 처리 비용을 없앴고, 사용자의 파일이 외부로 절대 전송되지 않는다는 명확한 프라이버시 보장을 제공할 수 있었습니다.
기술 스택
주요 기능
갤러리


도전 과제 및 해결 방안
'무서버(no server)' 방식의 난관은 보통 서버가 수행하던 모든 작업을 브라우저가 직접 처리해야 한다는 점이었습니다. 저는 작업을 두 개의 엔진으로 분리했습니다. 문서의 내부 구조를 재작성하는 구조적 편집 작업은 pdf-lib으로 처리하고, 페이지 표시나 이미지 변환이 필요한 렌더링 작업은 PDF.js를 통해 처리하도록 했습니다.
가장 까다로운 문제는 압축이었습니다. 실제 수준의 PDF 압축은 대개 서버 환경에서 실행되는 고성능 네이티브 도구인 Ghostscript에 의존합니다. 프라이버시 보호 약속을 지키기 위해, 저는 WebAssembly 버전의 Ghostscript를 도입하여 해당 엔진이 브라우저 로컬에서 직접 구동되도록 했습니다. 완벽한 압축 기능을 제공하면서도 어떤 파일도 외부로 업로드되지 않습니다. 페이지와 파일의 재정렬이 부드럽고 자연스럽게 느껴지도록 dnd-kit을 사용해 매끄러운 드래그 앤 드롭을 구현했고, 여러 장의 이미지 내보내기 시 수십 개의 파일이 개별 다운로드되지 않도록 JSZip을 사용해 단일 ZIP 파일로 압축 제공했습니다.
결과
그 결과, 백엔드도, 파일 스토리지도, 정적 전송 비용 외의 호스팅 비용도 전혀 들지 않고 실행되는 완전한 iLovePDF 스타일의 툴킷이 탄생했습니다. 동시에 기존 업체들이 제공하지 못하는 강력한 보장, 즉 문서가 기기를 전혀 벗어나지 않는다는 확실한 보안성을 제공합니다. 진정으로 유용한 도구이며, 최신 브라우저가 얼마나 복잡하고 무거운 작업을 훌륭히 처리할 수 있는지를 명확히 보여줍니다.
유사한 프로덕트 문제가 있으신가요?
현재 프로덕트 현황, 필요한 결과, 직면한 제약 사항을 공유해 주세요. 이를 바탕으로 합리적인 첫 번째 마일스톤을 정의해 드립니다.
웹 애플리케이션 개발 서비스