피드로 돌아가기
I built a free open-source photo & video organizer for 27,000+ files (no cloud, no subscription)
Dev.toDev.to
Backend

27,000개 이상의 로컬 미디어를 위한 Privacy-First 정적 오거나이저 구축

I built a free open-source photo & video organizer for 27,000+ files (no cloud, no subscription)

boulbaal2026년 6월 12일2beginner

Context

클라우드 의존성과 구독 모델 기반의 기존 솔루션으로 인한 데이터 프라이버시 침해 및 비용 발생 문제 직면. 비기술 사용자까지 고려한 단순한 UX와 대규모 로컬 파일 처리 능력을 갖춘 독립적 시스템 필요성 대두.

Technical Solution

  • Electron과 Node.js 기반의 Desktop Wrapper 구조를 통한 로컬 파일 시스템 직접 접근 권한 확보
  • MD5 Hash 기반의 중복 파일 검출 로직을 통한 데이터 무결성 확보 및 저장 공간 최적화
  • SQLite(better-sqlite3) 채택으로 대규모 메타데이터의 빠른 쿼리 성능과 로컬 단일 파일 저장 구조 구현
  • sharp와 exifr 라이브러리를 활용한 고효율 이미지 썸네일 생성 및 EXIF 메타데이터 추출 프로세스 설계
  • Leaflet과 Nominatim 기반의 Reverse Geocoding으로 외부 API 키 없이 GPS 좌표의 지리 정보 변환 구현
  • Vanilla JS 기반의 프론트엔드 설계를 통한 빌드 단계 제거 및 런타임 오버헤드 최소화

1. 대규모 로컬 파일 처리 시 인덱싱 속도 향상을 위해 SQLite와 같은 경량 임베디드 DB 검토

2. Privacy-First 서비스 설계 시 외부 API 호출을 최소화하고 OpenStreetMap과 같은 오픈 소스 대체제 활용

3. 단순 유틸리티 도구 개발 시 프레임워크 오버헤드를 줄이기 위해 Vanilla JS 기반의 무설치 구조 고려

4. 파일 중복 제거 로직 구현 시 파일명 대신 MD5 등 해시 기반의 고유 식별자 사용

원문 읽기