중복된 파일 찾기 Duplicate Finder
중복된 파일 찾기 Duplicate Finder 바로가기 ↗

요약

  • Python Tkinter 기반 로컬 파일 중복 탐지 데스크탑 앱
  • MD5 해시(완전 동일)와 pHash(유사 이미지) 2단계 스캔 방식
  • 이미지 / 영상 / 오디오 / 전체 파일(확장자 무관) 지원
  • 삭제는 휴지통 이동 방식으로 안전하게 처리

제작 동기

  • 수만 장의 사진이 쌓인 HDD를 정리하려 했으나 기존 중복 탐지 툴은 대부분 유료
  • 어차피 만들어야 한다면 직접 만들어서 배포까지 해보자는 생각으로 시작

목표 설정

  • 작업 기간: 2026.03.22. ~ 2026.03.28.
  • 목표
    • 완전 동일 / 유사 파일을 자동으로 탐지하고 비교 후 삭제할 수 있는 GUI 앱
    • 실수로 파일을 삭제하는 사고 방지 (휴지통 이동, 확인 다이얼로그)
    • .exe 배포로 일반 사용자도 사용 가능하도록 만들기

주요 작업

  1. 앱 전체 구조 설계 및 구현 ✅
    • scanner.py — MD5(완전 동일) + pHash(유사 이미지) 2단계 스캔 엔진
    • gui/ — 폴더 선택, 진행률, 결과 목록, 미리보기 패널 구성
  2. 결과 화면 ✅
    • 완전 중복 / 유사 중복 탭 분리
    • 각 파일 카드에 썸네일(이미지), 파일명, 용량, 날짜 표시
    • 이미지: 썸네일 클릭으로 OS 기본 뷰어 열기
    • 영상/오디오: 재생 버튼으로 OS 기본 플레이어 열기
  3. 삭제 기능 ✅
    • 체크박스로 개별 선택 후 일괄 삭제
    • 원본 유지 버튼 — 해상도 높은 것 기준으로 나머지 자동 선택
    • 모든 삭제는 휴지통 이동 (복구 가능)
    • 삭제 중 진행 다이얼로그 표시
  4. 대용량 폴더 대응 ✅
    • 스캔 중 일시중지 / 재개 기능 (대용량 폴더 스캔 대비)
    • 백그라운드 스레드로 스캔 — GUI 프리징 없음
    • 카드 50개 초과 시 일괄 처리 패널로 전환 (앱 응답 없음 방지)
  5. 다중 그룹 선택 및 일괄 처리 ✅
    • Ctrl+클릭 / Shift+클릭으로 그룹 다중 선택
    • 다중 선택 시 “원본 유지 후 나머지 삭제” 일괄 처리 (백그라운드)
  6. 파일 형식 지원 ✅
    • 이미지 / 영상 / 오디오 체크박스로 검색 대상 선택
    • 전체 파일(확장자 무관) MD5 스캔 모드 추가
    • 영상/오디오 포함 시 유사 이미지 검색 자동 비활성화
  7. 안정성 ✅
    • 경로 탈출 방지, 네트워크 요청 없음, 위험 코드 패턴 없음
    • 보안 검토 절차 자동화 (코드 수정 시 매번 실행)
  8. UX 개선 ✅
    • 커스텀 폴더 선택 다이얼로그 (더블클릭으로 하위폴더 없는 폴더 바로 선택)
    • 취소 시 진행바 자동 초기화
  9. 다국어 지원 ✅
    • 한/영 언어 전환 버튼 (앱 재시작 없이 즉시 전환)
    • 언어별 폰트 자동 적용 (ko: 맑은 고딕, en: Segoe UI)
  10. 배포 ✅
    • 후원 버튼 → Contact 페이지 연결
    • 전체 코드 최종 보안 검토 완료
    • PyInstaller로 단일 .exe 패키징 (GitHub Releases 배포)

결과

  1. 로컬에서 완전히 동작하는 파일 중복 탐지 앱 완성
  2. .exe 배포 완료 (GitHub Releases)