피드로 돌아가기
Dev.toFrontend
원문 읽기
Web Crypto와 File System Access API를 활용한 Zero-Upload 로컬 중복 이미지 제거 설계
Finding Duplicate Photos in the Browser (Without Uploading Your Library)
AI 요약
Context
기존 클라우드 기반 중복 사진 검색 서비스는 대용량 데이터 업로드로 인한 프라이버시 침해와 네트워크 대역폭 낭비라는 근본적 한계 존재. 특히 30GB 이상의 라이브러리 처리 시 업로드 시간이 로컬 해싱 시간보다 길어지는 비효율성 발생.
Technical Solution
- File System Access API의
showDirectoryPicker()를 통한 로컬 디렉토리 핸들 확보 및 재귀적 파일 탐색 구조 설계 - 파일명 기반 비교의 불확실성을 제거하기 위해 Web Crypto API 기반의 SHA-256 Content Hashing으로 결정론적 중복 판별 구현
- 메인 스레드 차단 방지를 위해 Web Workers를 활용한 비동기 해싱 파이프라인 구축 및 UI 반응성 유지
- 대용량 파일 처리 시 메모리 부족 방지를 위해 Blob 단위의 Chunking 읽기 전략 적용
localStorage의 용량 제한 및 동기적 직렬화 문제를 해결하기 위해 OPFS(Origin Private File System) 기반의 세션 상태 저장소 구축- 데이터 무결성 보장을 위해 자동 삭제 대신
dupshelf-duplicate-images하위 폴더로 이동시키는 Write-Permission 기반의 안전한 삭제 워크플로우 설계
실천 포인트
- 대용량 파일 처리 시 Web Workers를 통해 해싱 및 연산 로직을 메인 스레드에서 분리했는가? - File System Access API 사용 시 Read/Write 권한 요청 시점을 명확히 구분하여 사용자 경험을 최적화했는가? - 단순 Key-Value 저장소의 한계를 넘어 OPFS와 같은 브라우저 내 파일 시스템 활용을 검토했는가? - 데이터 삭제 로직 설계 시 즉시 삭제보다 '격리 후 확인'이라는 안전장치를 마련했는가?