피드로 돌아가기
fdupes is great — until you can't install it. I built a zero-install duplicate finder.
Dev.toDev.to
DevOps

Zero-dependency 기반의 다중 런타임 지원 중복 파일 탐색기 설계

fdupes is great — until you can't install it. I built a zero-install duplicate finder.

benjamin2026년 6월 17일2intermediate

Context

fdupes 등 기존 도구의 Native Binary 설치 필수 제약으로 인한 Locked-down 환경에서의 사용 불가 문제 발생. CI Runner나 제한된 서버 환경에서도 즉시 실행 가능한 이식성 높은 도구의 필요성 대두.

Technical Solution

  • 표준 라이브러리만 사용하는 Zero-dependency 설계를 통한 런타임 이식성 확보
  • Node.js 및 Python 두 가지 빌드 제공으로 환경별 최적의 진입점 확보
  • File Size 기반 1차 그룹화를 통한 불필요한 파일 I/O 최소화
  • SHA-256 해시 알고리즘 및 64KB Chunk 단위 Streaming 처리로 대용량 파일 처리 시 Memory Overflow 방지
  • Real Path 기반 De-duplication 로직을 통한 Symlink 및 중복 경로 계산 오류 해결
  • --json 옵션을 통한 파이프라인 연결 및 CI 빌드 게이트 자동화 구조 설계

1. 외부 라이브러리 의존성을 제거하여 런타임 환경 제약을 최소화했는가

2. 대용량 데이터 처리 시 메모리 효율을 위해 Streaming/Chunking 방식을 채택했는가

3. 연산 비용이 높은 작업(Hashing) 전 단계에 가벼운 필터링(Size check)을 배치했는가

4. 심볼릭 링크나 중복 경로와 같은 엣지 케이스를 Real Path 기반으로 정규화했는가

원문 읽기