Skip to content

KimDaehyeon6873/duplicate-cleaner-pro

Repository files navigation

Duplicate Cleaner Pro

🚀 고성능 중복 파일 제거 프로그램 (Tkinter GUI)


개요

Duplicate Cleaner Pro는 Windows, macOS, Linux에서 동작하는 고성능 중복 파일 탐지 및 정리 도구입니다.
모든 파일을 바이트 단위로 정확히 비교하고, 안전하게 운영체제의 휴지통으로 이동시켜 복구가 가능하도록 설계되었습니다.
직관적인 GUI, 빠른 해시 계산(BLAKE3/SHA-256), 다양한 필터링, 실시간 UI 업데이트, 상세 설정 패널 등 고급 기능을 제공합니다.


주요 기능

🚀 스캔 및 탐지

  • 백그라운드 스캔
    • UI 멈춤 없이 백그라운드에서 스캔 (진행률/취소 지원)
  • 다중 스캔 모드
    • 선택 폴더 스캔: 지정 폴더 및 하위 폴더 전체 스캔
    • 전체 드라이브 스캔(현재 비활성화): 시스템 보호/안정성상 UI·코드상 비활성화. 구조는 확장성과 병렬처리 최적화를 위해 구현되어 있으나, 실사용자는 접근할 수 없음
  • 고성능 해싱/병렬 처리
    • BLAKE3(자동 감지) 또는 SHA-256, 다중 CPU 코어 활용
    • 대량 파일을 효율적으로 처리
  • 효율적 중복 판별
    • 1차 파일 크기 필터 + 2차 해시 비교 (불필요 연산 최소화)
  • 유연한 고급 필터링
    • 파일 크기/확장자/제외 폴더(사용자 지정, OS별 기본값 제공)

📊 결과 및 관리 (Tkinter Treeview)

  • 중복 파일 그룹화/정렬: 대표 파일명 기준 그룹화, 다양한 정렬/검색/열기 기능
  • 점진적 UI 업데이트: 대량 스캔 시 결과를 실시간으로 반영
  • 스마트 파일 선택/토글: '첫 파일 제외 선택'/'전체 선택 해제' 토글
  • 휴지통 이동 및 즉시 통계 갱신
  • 실시간 상태/진행률/통계 피드백

⚙️ 사용자 정의 및 편의 기능

  • 고급 설정 패널 (해시 알고리즘, 필터, 멀티프로세싱 코어 수, 로깅 등)
  • 최초 실행 가이드, 상태 초기화, 창 자동 정렬
  • 트리뷰 및 전체 창 크기 자동 조정
  • 종료 시 확인

❗️ 전체 드라이브 스캔 기능 안내

⚠️ 중요: 전체 드라이브(예: C:\ 또는 /)를 대상으로 하는 스캔 기능은 시스템 파일/중요 폴더까지 접근하며, 예기치 않은 오류·데이터 손상 위험이 매우 큼
최종 공개/배포 버전에서는 UI 및 코드 상에서 비활성화되어 있습니다.

내부적으로는 대용량/다수 폴더 병렬 처리를 위한 Producer-Consumer, 멀티스레드·프로세스 구조까지 설계/구현되어 있습니다.
추후, 보안·필터링 검증 후 확장될 수 있습니다.


🛡️ 설계 및 안전에 대한 추가 설명

  • 단일 폴더 스캔
    내부적으로 해시 계산만 병렬 처리하여, 과도한 오버헤드 없이 빠른 속도를 보장
  • 전체 드라이브/다중 폴더 병렬화
    Producer-Consumer(생산자-소비자) 패턴, 작업 큐 기반 병렬 처리를 설계하였으나
    안전성 문제로 현 버전에서는 UI/실행 경로에서 차단
  • 코드 및 구조적 설계
    확장성과 기술적 고민을 기록하기 위해 관련 코드는 소스 내에 주석과 함께 남겨두었습니다.

📦 요구 사항

  • Python 3.8 이상
  • 필수: send2trash
  • 선택: blake3 (설치 시 해싱 속도 향상)
pip install send2trash blake3
python duplicate_cleaner_pro.py

🚧 향후 추가 예정 기능

  • 안전한 전체 드라이브 스캔 기능(강화된 시스템 폴더 보호, 자동 필터링 등)
  • 다크모드 전환 및 더 향상된 UI

☠️ 발견된 문제점 및 업데이트 내역

  • 2025/05/29: C:\ 전체 탐색/삭제가 시스템에 치명적일 수 있음 → 사용자 지정 폴더 제한, 안전한 범위만 제공
  • 2025/06/19: 전체 드라이브 스캔 기능 비활성화 및 경고 강화, UI/코드/가이드 반영

📄 라이선스

MIT License


🙋‍♂️ 문의/기여

  • 기능 제안, 버그 리포트, 코드 리뷰 등은 언제든 환영합니다!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages