상황
중복된 사진들과 백업들을 하나의 폴더에 연도별로 차곡차곡 정리해야하는 상황
- 아이폰A 사진폴더
- 아이폰B 사진폴더
- 아이폰A 백업사진1, 2… n
- 아이폰B 백업사진1, 2… n
- 갤럭시A 사진폴더
- 갤럭시B 사진폴더 및 백업 다수
- 여기저기 흩어진 사진 백업 폴더
해결

1. 백업 파일 추출
갤럭시는 USB 연결만으로 미디어 파일 복사가 비교적 쉬움, 아이폰도 방식은 비슷하지만, 백업 파일은 다름. Windows 기준 보통 다음의 경로에 저장되며, 파일을 바로 열 수 없어 전용 프로그램이 필요함
C:\Users\YOUR_USERNAME\AppData\Roaming\Apple Computer\MobileSync\Backup\

백업 폴더의 파일은 바로 열리지 않으므로, 3uTools나 iTunes Backup Explorer 같은 별도 프로그램으로 확인해야함

2. AI를 갈군다
일단 VS Code를 열고 Claude나 Codex를 활용해 단계별로 필요한 스크립트를 작성함, 작업 과정에서 만든 스크립트는 공개해두었으므로 필요에 맞게 수정해 사용하면 됩니다.
3. 파일 이름 통일 작업
아이폰 사진 파일명은 기본적으로 IMG_1234.JPG 형식임. 번호는 IMG_0000부터 IMG_9999까지 올라가며 그 이후에는 다시 처음 번호로 돌아감. 이 때문에 사진이 많아지면 동일한 파일명이 생길 수 있음
처음 사진을 정리할 때 단순히 연도별 폴더를 만들어 이동했는데, 파일명이 겹쳐 정리에 난항이 있었음. 따라서 이를 해결하기 위해 갤럭시 사진 파일명처럼 연월_XXXX.JPG 형식으로 변경해 파일명이 중복되지 않도록 처리함.
사진 파일에는 EXIF라는 메타데이터가 있는데 여기에서 촬영일 정보를 추출하여 파일명을 YYYYMMDD_HHMMS_IMG_XXXX.JPG 형식으로 통일함. 변경하면 모든 이미지 이름이 다음과 같은 형식으로 통일됨

4. 중복 파일 제거
이제 폴더 끼리 중복 파일을 제거하기 위해 위 스크립트를 사용함.
ABCD 폴더를 기준으로 A–B, C–D를 각각 비교해 output 폴더를 만들고, 이후 두 output 폴더를 다시 비교해 중복된 사진이나 영상이 없는 최종 병합 미디어 폴더를 생성하는 구조임.
도식화 하면 다음과 같은 업무 프로세스임

파일 HASH와 생성 및 수정을 기준으로 모두 동일할 경우에만 동일 파일로 판단하여 하나의 파일로 병합함
5. 연도별 파일 분류
앞선 단계에서 파일명 정리와 중복 파일 제거를 완료하여 하나의 병합된 폴더로 정리하고 각 파일의 EXIF 메타데이터의 촬영일 정보를 활용하여 사진을 연도별로 분류함.
스크립트로 연도별로 자동 생성 및 분류된 결과임

6. 사진 관리 서비스에 사진 업로드
Google Photos이나 Self-Hosted 이미지 서버인 Immich 같은 로컬 사진 관리 플랫폼에 업로드함

Immich는 웹 뿐만 아니라 REST API를 제공하므로 이 역시 스크립트를 짜서 미디어를 올리는 행위 역시 자동화 할 수 있음


사진을 올린 후에는 Local ML 돌려서 OCR, 컨텍스트 검색 등이 가능함. GPU 가속을 써서 생각보다 오래 걸리진 않는 것 같습니다
7. 중복 파일 최종 정리

파일 정리하고 나서 휴지통을 비우니 최소 3 ~ 4TB 의 파일, 중복 및 백업들이 비워졌습니다. 뿐만 아니라 이번 작업을 통해 여기저기 흩어져 있던 사진/영상 파일도 정리되었습니다.
처음에는 GUI 중복파일 정리/검사 프로그램을 사용하다가 파일 정리 효율이 현저히 떨어짐, 이후 스크립트 짜서 정리 돌리니 시간이 최소 3 ~ 5배는 절감되는 것 같습니다.
수 주가 걸릴 일이 AI가 짜준 스크립트 덕에 며칠 만에 끝내서 쌀먹할 수 있는 것 같고 앞으로는 필요한 미디어 파일 찾는데 조금 더 수월해질 것 같습니다.
