티스토리 뷰

IT

중복 사진 정리: 해시·EXIF 기반 워크플로

happyblissday 2025. 10. 22. 12:15

목차


    Synology NAS에서 사진·동영상 중복을 안전하게 제거하는 해시(SHA/xxHash·pHash) + EXIF 기반 워크플로. 스냅샷·외부 백업, 도구(dupeGuru·Czkawka·rmlint·exiftool), 규칙 템플릿, 자동화, 복구 전략까지 단계별 실전 가이드.

     

    해시·pHash·EXIF를 조합한 중복 제거 워크플로 다이어그램
     

    해시(SHA/xxHash·pHash)EXIF를 함께 쓰면 사진·동영상 중복을 안전하고 재현 가능하게 정리할 수 있습니다. 이 글은 Synology NAS 기준 사전 백업 → 후보 탐지 → 수동 검토 → 실행 → 검증 → 자동화를 단계별로 안내합니다12.

    1) 빠른 요약

     

     

    • 안전 정리 전 스냅샷과 오프사이트 백업(3-2-1) 확보2.
    • 정확 바이트 해시(SHA-1/xxHash)로 완전 동일, pHash로 유사 후보 탐지611.
    • 재현성 EXIF 촬영시각/기기/해상도 등 규칙으로 “남길 파일”을 일관 결정4.
    • 자동화 DSM 작업 스케줄러로 야간 리포트 자동 생성 → 휴먼 승인 후 실행3.

    2) 원리: 해시와 EXIF, 언제 어떻게 쓰나

    기법 용도 장점 주의
    바이트 해시(SHA-1/xxHash) 완전 동일 파일 판정 오탐 거의 0, 고속(xxHash)6 재저장/보정 시 해시 변경 → 유사 판정 불가
    지각 해시(pHash) 리사이즈·워터마크·톤 보정 등 유사 후보 시각적 유사 군집 탐지11 임계치 설정·수동 검토 필요
    EXIF/메타데이터 정렬·우선순위(촬영시각·기기·해상도·렌즈) 보존/삭제 결정의 근거4 편집앱이 수정/삭제 가능 → 보정 필요

    3) 준비: 스테이징·스냅샷·외부 백업

    • 대상 폴더를 /photo-staging 등 임시 영역에 모읍니다.
    • 볼륨에서 즉시 스냅샷 생성(작업 전/후) + 스케줄 설정2.
    • 오프사이트(두 번째 NAS/클라우드)로 전체 백업 — 3-2-1 원칙2.

    Btrfs 스냅샷은 롤백이 쉬워 ‘실수 방지’에 매우 효과적입니다2.

    4) 도구 선택(혼합 구성 권장)

    도구 역할 강점 참고
    exiftool EXIF 추출/정렬/리네임 강력한 메타 파서4 촬영일 기준 정렬·충돌 판정
    dupeGuru (Picture) 유사 이미지 후보 수동 검토 UI·미리보기·임계치 조절5 휴먼 검수에 최적
    Czkawka 바이트 해시·pHash 스캔 xxHash/pHash·멀티스레드6 대용량에 유리
    rmlint 실행 스크립트/하드링크 삭제/이동/링크 자동화7 CLI 숙련 필요
    MediaInfo/ffprobe 동영상 메타 비교 코덱/해상도/길이 기준9 영상 규칙에 활용

    5) 단계별 워크플로(요약)

    1. 인덱스: Czkawka로 바이트 해시(sha1/xxh128) 인덱스 생성6.
    2. 후보: 동일 해시 그룹=확정 중복 / pHash 임계치(예: 90/100) 이상=유사 후보611.
    3. 규칙: EXIF 촬영시각·해상도·파일크기·경로 가중치로 “남길 파일” 자동 표기4.
    4. 검토: dupeGuru로 썸네일 확인·예외 표시5.
    5. 실행: rmlint 스크립트로 삭제/이동/하드링크 통합7.
    6. 검증: 리포트 총합/샘플 열람 → 문제 없으면 스냅샷 갱신2.

    6) 보존/삭제 규칙 템플릿(권장)

    상황 남길 파일 삭제/이동 메모
    동일 파일(해시 동일) 해상도↑·용량↑·경로 우선(/originals) 나머지 완전 중복 → 안전 삭제6
    유사 이미지(pHash ≥ 90) EXIF 최신·해상도↑ 낮은 해상도/워터마크본 휴먼 검토 후 실행11
    Live Photo(HEIC+MOV) 쌍 모두 보존 쌍이 깨진 고아 파일은 격리 쌍 매칭 후 정리1
    RAW+JPEG RAW 보존(편집본 동반 보존 가능) 낮은 해상도 JPEG 워크플로 목적에 맞춤4
    버스트/연사 대표 1~2장 나머지 격리 후 검토 태깅 후 삭제 결정

    7) 실행: 리포트 → 안전 실행(개념)

    1) Czkawka(또는 rmlint)로 리포트 먼저 생성 → 2) 샘플 검토 → 3) 실행 스크립트 적용.
    NAS는 Btrfs 권장(스냅샷/링크 친화)27.
    • Czkawka: 동일 해시·pHash 그룹 CSV/JSON 리포트 출력6
    • rmlint: 스캔 → sh 스크립트 생성(삭제/이동/하드링크)7
    • exiftool: EXIF 불량(0000-00-00) 보정/리네임4
    • MediaInfo: 동영상 해상도/길이 기준 필터링9

    8) 특수 케이스(실수 방지)

    • Live Photo: HEIC+MOV 쌍 유지(둘 중 하나만 삭제 금지)1.
    • 편집본 vs 원본: 편집본 존재 시 원본과 함께 보존(비파괴 워크플로).
    • 썸네일/캐시: 앱 캐시(thumbs, .DS_Store 등)는 확실히 제외 규칙 적용.
    • 타임존/서머타임: 촬영시각 어긋남은 exiftool로 일괄 오프셋 보정4.

    9) 자동화(주간 리포트 & 승인형 실행)

    1. DSM 작업 스케줄러 → 사용자 정의 스크립트 → 주 1회 야간 리포트 생성3.
    2. 메일/푸시로 리포트 공유 → 휴먼 승인 후 실행 스크립트 적용.
    3. 월 1회 스냅샷 롤링 및 증분 백업 검증2.

    10) 복구 전략(되돌리기·감사)

    상황 대응 근거
    오삭제 스냅샷에서 해당 시점 폴더만 복원 Snapshot Replication2
    링크 통합 문제 사전 스냅샷 복구 또는 링크 해제 후 재배치 rmlint 실행 로그로 추적7
    감사/재현 리포트·스크립트·스냅샷 ID 보관 재현성/추적성 확보

     

     

    12) 결론

    중복 정리의 핵심은 해시로 확정, pHash로 후보, EXIF 규칙으로 결정, 그리고 스냅샷·로그로 안전을 지키는 것입니다. 이 워크플로를 주간 리포트 → 휴먼 승인 → 실행의 2단계 자동화로 굴리면 품질·속도·안전을 동시에 달성할 수 있습니다2346711.

    출처

    1. Synology Photos 도움말 — 사진 관리·구조
    2. Synology — Snapshot Replication(스냅샷/복원)
    3. DSM 작업 스케줄러 — 사용자 정의 스크립트
    4. ExifTool 공식 문서
    5. dupeGuru — 그림 모드 가이드
    6. Czkawka — 중복/유사 이미지 스캐너
    7. rmlint — 중복 탐지/하드링크 스크립팅
    8. Apple — Live Photos 개요
    9. MediaInfo 문서 — 동영상 메타
    10. pHash(Perceptual Hashing) — 개념/라이브러리
    11. Synology — Btrfs 개요