HOW IT WORKS
파일이 서버로 가지 않는 이유
“브라우저에서 처리한다”는 말은 마케팅 문구가 아니라 구조의 문제입니다. 어떤 코드가 어디서 실행되는지, 어떻게 확인할 수 있는지 적었습니다.
1. 파일은 메모리에만 머뭅니다
파일을 선택하면 브라우저의 File 객체가 만들어집니다. PDF 합치기는 이 객체를ArrayBuffer로 읽어 페이지를 복사하고, 새 PDF를 메모리에서 만듭니다. 이미지 압축은 <canvas>에 다시 그린 뒤 toBlob()으로 인코딩합니다. 두 경우 모두 네트워크 요청이 발생하지 않습니다.
2. 직접 확인하는 방법
- 도구 페이지에서 F12를 눌러 개발자 도구를 엽니다.
- Network 탭에서 Fetch/XHR 필터를 켭니다.
- 파일을 선택하고 합치기·압축을 실행합니다.
- 파일 내용이 담긴 요청이 없다면, 파일은 전송되지 않은 것입니다.
페이지를 열 때는 스크립트·스타일·폰트를 받아오는 요청이 발생합니다. 이는 파일 전송과 무관합니다. 광고나 분석 도구가 켜져 있으면 해당 도메인 요청은 별도로 표시됩니다.
3. 라이브러리는 어디서 오나
PDF 처리는 pdf-lib, QR 생성은 qrcode 패키지를 사이트에서 직접 제공합니다. 외부 CDN에서 실행 시점에 불러오지 않으며, 버전은 잠금 파일로 고정합니다.
4. 한계
- 브라우저 메모리를 넘는 파일은 처리할 수 없습니다. PDF는 50MB 이하를 권장합니다.
- 암호가 걸린 PDF, 손상된 파일은 열 수 없습니다.
- PDF 병합 시 입력 폼·북마크·주석이 일부 사라질 수 있습니다.
- 이미지 압축은 재인코딩이므로 원본과 화질이 완전히 같지 않습니다.
- 모바일 브라우저는 데스크톱보다 메모리 한계가 낮습니다.
5. 기록과 수정
도구를 변경하면 각 페이지의 “최종 검토” 날짜를 갱신합니다. 결과가 이상하다는 제보를 받으면 재현 테스트를 거쳐 문서와 동작을 함께 고칩니다. 제보는hello@officekit.kr로 보내주세요.