먼저 알아둘 기준
파일 선택 요소는 사용자가 고른 파일에만 제한된 접근 권한을 줍니다. 브라우저 코드는 File 또는 ArrayBuffer를 읽어 파서에 전달하며, 서버 API로 전송하는 fetch나 폼 업로드를 만들지 않으면 파일 바이트는 현재 기기에서 처리됩니다.
무거운 파싱은 Web Worker로 옮기면 화면 멈춤을 줄일 수 있습니다. 결과는 문자열이나 새 Blob으로 만들고 Object URL을 생성해 사용자가 직접 다운로드합니다. 원본 파일을 변경하거나 자동으로 덮어쓰지는 않습니다.
작업이 끝나면 Worker를 종료하고 ArrayBuffer 참조와 Object URL을 해제해야 합니다. 로컬 처리라도 브라우저 확장 프로그램, 운영체제, 기기 메모리와 사용자가 설치한 소프트웨어까지 사이트가 통제하는 것은 아닙니다.
실제 작업에서 보는 사례
SRT 파일을 File.text로 읽어 시간코드를 파싱하고 새 UTF-8 VTT Blob을 다운로드합니다.
DOCX ArrayBuffer를 페이지에서만 동적 로드한 파서에 전달해 본문을 추출합니다.
큰 HWP 문서를 Worker에서 처리하고 취소 시 Worker와 생성한 Object URL을 즉시 정리합니다.
단계별로 확인하는 방법
- 1
사용자가 파일을 직접 선택하고 형식·크기·메모리 위험을 검사합니다.
- 2
해당 도구 페이지에서만 필요한 파서를 불러와 브라우저 메모리에서 처리합니다.
- 3
결과 미리보기를 확인한 뒤 Blob과 안전한 파일명으로 다운로드합니다.
- 4
파일 제거·취소·페이지 종료 시 Worker와 Object URL 참조를 해제합니다.
브라우저 로컬 처리 흐름
| 단계 | 사용 기술 | 서버 전송 여부 |
|---|---|---|
| 파일 선택 | File API | 사용자가 고른 로컬 참조만 획득 |
| 파싱·변환 | JavaScript·WebAssembly·Worker | 현재 기기에서 계산 |
| 결과 저장 | Blob·Object URL | 브라우저 다운로드 |
| 정리 | URL.revokeObjectURL·Worker.terminate | 임시 참조 해제 |
주의할 점
- ‘서버 업로드 없음’을 ‘완전히 안전함’으로 확대 표현해서는 안 되며 기기와 확장 프로그램 환경은 별개입니다.
- Analytics에는 파일명, 크기, 문서 통계, 입력 내용과 변환 결과를 보내지 않아야 합니다.
기술적 제한
- 모바일 브라우저와 저사양 기기는 메모리 한도가 낮아 대용량 ZIP·PDF·HWP 파싱이 중단될 수 있습니다.
- 브라우저 로컬 처리 설계는 운영체제, 악성 확장 프로그램과 기기 자체의 보안을 보장하지 않습니다.