Takeout JSON

사진 수만 장을 날짜순으로 연도와 월 폴더에 정리하는 방법

휴대폰, 카메라, 구글 포토 내보내기에서 온 사진을 촬영일 기준으로 연/월 폴더에 정리하는 방법입니다. 수정한 날짜로 정렬하면 안 되는 이유와 도구를 설명합니다.

한 폴더에 사진 1만 장이 들어 있습니다. 휴대폰에서 온 것, 카메라 메모리에서 온 것, 옛날 구글 포토 내보내기에서 온 것이 섞여 있습니다. 어느 여행 사진을 찾으려면 나머지 전부를 지나쳐야 합니다. 폴더가 필요하고, 10년 뒤에도 말이 되는 폴더여야 합니다.

왜 이렇게 쌓이나

휴대폰과 카메라는 폴더에 관심이 없습니다. IMG_4821.JPG20230617_130612.jpg 같은 이름으로 한곳에 쓰고, 번호가 끝나면 처음부터 다시 셉니다. 기기 세 대를 한 폴더에 복사하면 이름 충돌, 중복 번호, 순서 없음이 한꺼번에 생깁니다.

클라우드 서비스는 메타데이터로 타임라인을 만들어 이것을 감춰 줍니다. 서비스를 떠나거나 파일을 외장하드에 복사하는 순간 타임라인은 사라지고 더미만 남습니다.

연/월 폴더를 권하는 이유

연도, 그 아래 월 구조가 살아남는 구조입니다. 2019 폴더 안의 07-July는 사람이 읽을 수 있고, 어떤 파일 관리자에서도 올바로 정렬되며, 이해하는 데 소프트웨어가 필요 없습니다. NAS, USB, 탐색기, 파인더, 터미널 어디서나 동작합니다.

기억하는 방식과도 맞습니다. 정확한 날은 몰라도 연도는 대개 알고, 계절도 자주 압니다. 월 폴더는 휴대폰을 많이 쓰는 사람도 몇백 장이라 아직 스크롤할 수 있는 크기입니다.

월 앞의 두 자리 숫자가 보기보다 중요합니다. 7월처럼 이름만 쓰면 10월, 11월, 12월1월 다음에 오는 식으로 문자열 순서로 정렬됩니다. 앞의 숫자가 달력 순서를 지켜 줍니다.

다른 구조와 맞는 경우

연/월/일은 하루에 폴더 하나입니다. 행사 사진가나 아주 큰 라이브러리에 맞지만, 가족 라이브러리에서는 사진 한두 장짜리 작은 폴더 수천 개가 됩니다.

연도만 쓰는 것은 반대입니다. 한 해 몇백 장짜리 작은 라이브러리에는 괜찮습니다. 한 해 몇천 장을 넘으면 폴더가 너무 커져 훑어볼 수 없습니다.

연도/장소는 연도 아래 장소별 폴더입니다. 2019/Jeju, 2019/Busan. 여행이 많은 사람에게 좋지만 사진에 GPS가 있어야 하고, 위치 없는 사진은 갈 곳이 마땅치 않습니다.

기존 폴더를 유지하는 것도 실제 선택지입니다. 이미 앨범을 폴더로 갖고 있고 날짜만 고치고 이름만 정리하고 싶다면 그 구조를 버릴 이유가 없습니다.

폴더는 어떤 날짜로 만들어야 하나

여기서 가장 자주 틀립니다. 사진이 들어갈 폴더는 촬영한 날짜에서 나와야 하고, 그 날짜는 파일 안의 EXIF DateTimeOriginal에 있습니다. 파일의 "수정한 날짜"에서 나오면 안 됩니다. 수정한 날짜는 파일을 복사하거나 내려받거나 편집할 때마다 바뀌기 때문에, 그것으로 정렬하면 2012년 사진이 2026년 폴더에 들어갑니다.

윈도우 탐색기의 "찍은 날짜" 열이 EXIF 촬영일이고, "수정한 날짜" 열이 파일 날짜입니다. 정리 전에 "찍은 날짜" 열을 켜고 빈 칸이 얼마나 되는지 보십시오.

사진이 구글 테이크아웃에서 왔다면 EXIF 날짜가 없거나 틀린 경우가 많고, 실제 날짜는 옆의 .json 파일에 있습니다. 그대로 EXIF로 정렬하면 다운로드한 날짜의 거대한 폴더 하나가 생깁니다. 먼저 날짜를 고치고 폴더를 만드십시오. 테이크아웃 사진 날짜가 틀리는 이유에 설명이 있습니다. 카카오톡 사진과 스크린샷도 EXIF 촬영일이 없어서 같은 문제가 있습니다.

중복도 이때 걸러집니다. 휴대폰과 구글 포토 백업, 카카오톡 저장이 겹치면 같은 사진이 이름만 다르게 서너 벌 있는 경우가 흔합니다. 날짜와 시각이 파일 안에 있으면 같은 순간의 사진이 같은 폴더에 나란히 놓이므로 눈으로 골라내기 쉽습니다. 내용이 완전히 같은 파일은 앱이 한 번만 씁니다.

손으로 하기

몇백 장이면 파일 관리자로 충분합니다. "찍은 날짜"로 정렬하고, 한 달치를 선택해 새 폴더로 끌어다 놓습니다. 오후 하나가 걸리고 몇 번 실수하게 됩니다.

그 이상이면 도구를 쓰십시오. exiftool은 어떤 운영체제에서든 명령 하나로 전체 작업을 합니다.

exiftool -r "-Directory<DateTimeOriginal" -d "%Y/%m-%B" .

EXIF 촬영일이 있는 모든 사진을 2019/07-July 형태의 폴더로 옮깁니다. 촬영일이 없는 파일은 제자리에 남으니 명령이 끝난 뒤 남은 파일을 따로 살펴봐야 합니다. 파일 이름도 날짜로 바꾸려면 -FileName 옵션을 더하는데, 이름이 같은 파일이 충돌하지 않게 %c 같은 카운터를 넣어야 합니다.

앱으로 하기

Takeout JSON Metadata Fixer는 이름 그대로 테이크아웃용으로 만들었지만, 아무 사진 폴더에나 쓸 수 있습니다.

폴더를 지정하면 각 사진의 날짜를 사이드카, EXIF, 파일 날짜 순으로 읽어 연/월 폴더나 연도/장소 폴더로 정리하고, 원하면 파일 이름을 2019-07-14-1105_Jeju.jpg처럼 날짜와 장소로 바꿉니다. 정리는 한 번의 실행으로 끝나고, 같은 사진이 두 번 쓰이지 않습니다. 스캔 사진처럼 날짜가 없는 폴더에는 날짜와 장소를 손으로 지정할 수 있습니다. 시험 실행이 실제로 쓰기 전에 폴더와 이름을 보여 줍니다.

윈도우, 맥, 리눅스에서 오프라인으로 동작하고 인터페이스는 한국어입니다. 처음 1000장은 무료, 이후에는 19.99달러 한 번입니다.

정리한 뒤

정리한 폴더는 그대로 NAS, 외장하드, 네이버 MYBOX에 복사하면 됩니다. 날짜가 파일 안에 있으므로 어디로 가든 날짜순 정렬이 유지됩니다. 폴더 구조는 사람이 볼 때를 위한 것이고, 갤러리 앱은 EXIF로 자기 타임라인을 만듭니다.

자주 묻는 질문

월 폴더 이름을 한글로 할 수 있나요?

가능은 하지만 07-July처럼 숫자를 앞에 두는 것이 핵심입니다. 숫자만 있으면 언어에 상관없이 정렬됩니다.

동영상도 같이 정리되나요?

동영상은 EXIF 대신 MP4나 MOV 컨테이너 안의 생성 날짜를 씁니다. exiftool과 앱 모두 그 날짜를 읽어 같은 폴더 구조에 넣습니다.

폴더로 정리하면 원본이 옮겨지나요?

exiftool의 -Directory는 파일을 옮깁니다. 앱은 결과 폴더를 따로 지정하면 원본을 그대로 둡니다. 어느 쪽이든 먼저 백업하십시오.