Cowork 레슨앤런 시리즈 · 8편 — 사진·여행 자동화
7편에서 여행 사진·영상 5,907개를 토큰 거의 0으로 보정했다. 그런데 막상 보정이 끝나니 새 고민이 생겼다. 결과물 5,907개가 한 폴더에 그대로 쌓여 있었다. 첫날 아침 비행기에서 찍은 사진과 마지막날 호텔 조식 영상이 같은 폴더에 섞여 있는 상태. 블로그에 올리려면 “호텔 도착”, “미시마 스카이워크”, “이즈고원 카페” 이런 식으로 활동 단위로 정리되어 있어야 한다.
다시 막막해졌다. “이걸 정리하려면 6,000장을 다 한 번씩 들여다봐야 하는 건가?” 7편에서 “AI에게 보라고 하지 말고 코드를 짜라” 는 걸 배우긴 했는데, 이번엔 “무슨 기준으로” 코드를 짜야 할지가 안 보였다. 위치도 다르고 시간도 다른 사진들을 어떻게 묶지?
이번 글은 그 막힘에서 시작해서 “사진은 이미 자기가 언제·어디서 찍혔는지 알고 있다” 는 한 줄로 풀린 과정을 정리한 글이다. 실제로 돌려서 5,907개가 44개 폴더로 어떻게 갈렸는지, 어디서 어긋났는지까지 다룬다. 다만 이번에도 “그대로 복붙할 도구” 는 이 글에 없다 — 흐름과 깨달음만이다.
내가 처음 했던 두 번째 오해
이번엔 오해의 결이 좀 달랐다. 7편 때는 “AI가 한 장씩 봐야 한다” 고 생각했다면, 이번 감에 보� 젘애다. 내용을 이해해야 가능한 일 이라고 생각했다. “이건 호텔이고, 이건 카페고, 이건 산이지” — 사람이 사진을 봐야 알 수 있는 정보 아닌가?
그래서 처음엔 두 가지 길 중에 골라야 한다고 생각했다.
- AI가 사진 한 장씩 보고 “이건 어디” 라고 답하게 한다 → 토큰 폭탄. 7편에서 안 된다고 결론.
- 내가 6,000개를 일일이 보고 직접 폴더에 넣는다 → 며칠짜리 노가다.
둘 다 답이 아니었다. 막혀 있다가, 7편 마무리에 흘려 쓴 한 줄이 다시 보였다.
“사진에 담긴 촬영 시간·위치 정보(EXIF·GPS)도 그대로 유지 → 나중에 날짜·장소별로 자동 분류할 때 그대로 쓸 수 있음.”
내가 적어놓고 한참 못 본 길이었다.
핵심 깨달음 — 사진은 이미 자기 메타데이터를 갖고 있다
스마트폰으로 찍은 사진은 그냥 그림 파일이 아니다. 그 안에는 눈에 보이지 않는 메모지가 같이 붙어 있다. “이 사진은 5월 19일 오후 1시 8분에, 위도 35.16 / 경도 138.62 에서 찍혔다” 같은 정보가 사진 파일 안에 통째로 들어 있다. 이걸 EXIF(촬영 정보)와 GPS(위치)라고 부른다.
그러면 더 이상 AI가 사진을 들여다볼 필요가 없다. 그냥 사진에 “너 언제 어디서 찍혔어?” 라고 물어보면 되는 것이다. 코드는 사진을 “본다” 가 아니라 사진의 “메모지를 일는다”. 사진 안에 글자가 있는지 풍경이 있는지는 알 바 아니고, 그저 시간과 졼표만 가져온다.
이렇게 보고 나니 분류 규칙은 의외로 단순해졌다.
- 같은 날에 찍힌 것끼리 먼저 묶는다 (날짜 기준 폴더 분리)
- 같은 날 안에서, 앞 사진과 시간이 가깝고(예: 90분 이내) 위치도 가까운 것(예: 500m 이내)을 한 묶음으로 본다.
- 그러다 시간이 훌쩍 뜨거나 위치가 멀어지면 “새 활동” 으로 본다 (예: 점심 식당 → 다음 명소).
규칙은 “가깜운 시간 + 가까운 위치 = 같은 활동” 한 줄로 요약된다. 이 두 숫자만 정에두니, 6,000장이 알아서 자기 자리를 찮아갊다.
실제로 돌려보니 — 5,907개 → 44개 폴더
7편에서 보정해둔 시즈오카 폴더에 그대로 적용해봤다. 사진과 영상 5,907개. 결과는 다음과 같았다.
- 8일(5월 18~25일)이 자동으로 깔끔하게 갈라졌다. 출국·도착·체류·귀국이 날짜로 그대로 보였다.
- 사진 3,175장 중 EXIF가 살아 있는 비율 99.6%. GPS까지 있는 비율은 96.3%. 거의 모든 사진이 자기 시간과 위치를 들고 있었다.
- 활동 단위로는 44개 묶음이 떨어졌다. 평균 134장. 어떤 묶음은 4시간짜리 한 명소(230장), 어떤 묶음은 점심 한 끼(40장), 어떤 묶음은 잠깐 들른 휴게소(5장).
- 물음 줄을 따라가니 여행 동선이 그대로 재현됐다. 첫날 비행기 → 도착 → 호텔 → 둘째 날 아침 출발 → 미시마 → 하코네 … 이걸 내가 정렬한 게 아니라 사진의 시간·위치가 알려준 것이다.
내가 들인 노력은 “기준 두 개를 정한 것” 뿐이다. “같은 활동으로 볼 시간 차” (90분) 와 “같은 활동으로 볼 거리 차” (500m). 이 두 숫자만 정해두니, 6,000개가 알아서 자기 자리를 찾아갔다.
솔직히, 모든 게 깨끗하지는 않았다
레슨앤런이니 안 풀린 부분도 적는다.
① 메타데이터가 없는 사진 12장이 떠돌았다. 카카오톡으로 친구가 보낸 사진, 화면 스크린샷 같은 것들이다. 이런 파일은 원본을 거치는 동안 “언제·어디서” 정보가 깎여나간다. 12장은 다행히 적은 양이라 “메타데이터 없는 사진” 폴더로 따로 빠지게 두고, 나중에 직접 보고 적당한 폴더에 옮기는 것으로 정리했다.
② 영상의 시간 정보가 보정 과정에서 흐려졌다. 사진은 EXIF가 그대로 남아 있었는데, 영상 2,698개는 보정하면서 “이 파일이 만들어진 시각” 이 보정한 날(5월 25일)로 바뀌어 버렸다. 그러니 영상만 따로 보면 “전부 마지막 날에 찍힌 것” 처럼 보였다. 결국 영상들은 한 묶음(2,785개)으로 떨어졌고, 이건 분류라기보다 “영상 폴더 통째로” 가 된 셈이다. 다음 회차에 “같은 번호의 사진이 옆에 있으면 사진 시간으로 추정한다” 같은 보강이 필요한 부분이다.
③ 비행기 안에서 찍은 사진이 GPS를 들썩였다. 1분 사이에 좌표가 수십 km씩 바뀌니, 기계가 보면 “순간이동했네 → 다른 장소네 → 새 묶음” 으로 갈라버린다. 잠깐 사이에 위치만 튀는 건 “무시” 하도록 규칙을 한 줄 더 두니 비행 중 사진들이 한 묶음으로 잘 모였다.
④ 묶음이 너무 잘게 갈리는 “싱글톤” 들이 나왔다. 잠깐 차에서 내려서 한 컷 찍고 다시 출발한 경우, 그 한 장은 “앞뒤로 한참 떨어진 외톨이” 가 된다. 이런 1~2장짜리 묶음은 “바로 직전 묶음에 흡수한다” 는 규칙을 한 줄 더 두니, 자잘한 외톨이가 활동 단위에 자연스럽게 합쳐졌다.
이 네 가지가 처음 한 번에 다 잡혔으면 좋았겠지만, 한 번에는 안 풀렸다. “먼저 큰 줄기로 묶고, 어긋난 케이스 보면서 규칙 한 줄씩 추가” 가 더 빠른 길이었다.
결과
- 입력: 보정 끝낸 시즈오카 사진·영상 5,907개 (한 폴더)
- 출력: 날짜·활동 단위 44개 묶음 (8일 × 평균 5.5개 활동)
- 메타 추출 성공률: 99.8% (12개만 누락, 별도 폴더로 분리)
- GPS 매칭 성공률: 96.3% (사진 기준)
- AI가 본 사진: 0장. 사진은 안 들여다보고 “메모지(EXIF·GPS)” 만 읽음
- 토큰: 규칙 만들고 다듬는 대화 분량뿐 (개수와 무관)
44개 묶음 표를 처음 봤을 때, 묶음 줄을 위에서 아래로 읽기만 해도 여행 동선이 그대로 보였다. “아 이 묶음은 둘째 날 호텔 아침이고, 다음 묶음은 차로 이동한 다음 첫 명소구나” — 이게 내가 한 게 아니라 사진들 스스로가 만든 정리였다.
[IMAGE_HERE: 폴더분리예시.jpg] (캡션: 한 폴더에 섞여 있던 사진들이 “날짜_시작시각_GPS” 단위 폴더로 나뉜 모습. 폴더 이름만 봐도 “5/19 11시 미시마 부근” 같은 식으로 활동이 식별된다.)
비개발자가 가져갈 원칙 3가지
① “AI에게 보라고 하기” 전에 “파일에 물어볼 수 있나” 부터 확인한다
스마트폰 사진은 메타데이터가 자동으로 붙는다. 시간·위치뿐 아니라 카메라 종류, 노출, 방향까지. 이미 답이 파일 안에 있는데 AI에게 다시 보라고 하는 건 토큰 낭비다. “이거 원래 파일이 알고 있나?” 를 먼저 물어보면 들이는 토큰이 0에 수렴하는 경우가 의외로 많다. 사진의 EXIF, 음악의 ID3 태그, 문서의 작성일·작성자 정보 — 다 같은 결의 “파일 메모지” 다.
② 분류는 “한 번에 완벽한 규칙”보다 “큰 줄기 → 어긋난 케이스 한 줄씩”
이번에도 처음부터 만능 규칙을 세우려 하지 않았다. 가장 큰 줄기 — “같은 날, 시간·위치 가까우면 한 묶음” — 만 먼저 적용하고, 결과를 보면서 어긋난 케이스(비행기 GPS, 외톨이 사진, 메타 없는 파일)를 한 줄씩 보강했다. “한 번에 다 잡으려는 규칙” 은 안 굴러가고, “한 줄씩 덧붙이는 규칙” 은 매번 굴러간다. 6,000개 분류 같은 일일수록 이게 더 빠르다.
③ 분류는 “끝내는 일”이 아니라 “다음 일이 가능해지는 일”이다
44개 폴더로 갈린 게 끝이 아니다. 이제부터가 시작이다. 각 폴더는 그대로 “네이버 블로그 글 한 편” 의 단위가 된다. 폴더 이름에 시간·좌표가 박혀 있으니, 거기서 장소 이름만 정해서 붙이면 블로그 초안 자동화 도구(레슨앤런 6편에서 소개한 흐름)에 그대로 넘길 수 있다. 분류는 그 자체가 목적이 아니라, “다음 자동화의 입력” 이 된다. 이 연결이 보이면, 도구 만드는 노력이 단발성이 아니라 “파이프라인의 한 토막” 으로 쌓인다.
자주 묻는 질문
Q1. EXIF·GPS가 뭔가요? 사진에 그런 게 정말 있나요?
스마트폰으로 사진을 찍으면 그림 파일 안에 “눈에 안 보이는 메모지” 가 같이 저장된다. 이걸 EXIF라고 부른다. 거기에는 촬영 시각, 카메라 종류, 노출값 같은 정보가 들어가고, 위치 서비스를 켜둔 상태였다면 위도·경도(GPS)도 같이 적힌다. 사진을 마우스 우클릭 → 속성 → 자세히 들어가면 일부가 보이고, 코드로 읽으면 다 꺼낼 수 있다.
Q2. 카카오톡으로 받은 사진은 왜 메타데이터가 없나요?
메신저가 사진을 가볍게 전송하려고 원본을 압축하는 과정에서 메타데이터를 잘라낸다. “용량을 줄이려면 부가 정보부터 떼면 된다” 는 처리 방식 때문이다. 그래서 카톡으로 받은 사진은 “이미지 자체” 는 멀쩡하지만 “언제·어디서” 정보는 사라져 있는 경우가 많다. 이런 사진은 별도 폴더로 빠지게 두고 따로 정리하는 게 안전하다.
Q3. 영상은 왜 분류가 잘 안 됐나요?
영상은 사진보다 메타데이터 구조가 복잡하고, 이번 경우엔 보정 과정에서 “파일이 만들어진 시각” 이 보정 실행일로 바뀌어 버려서 모든 영상이 “마지막 날 찍힌 것” 처럼 보였다. 다음 회차에는 같은 번호의 사진(예: 영상 IMG_0042 옆에 사진 IMG_0042) 시각을 가져와서 보정해 쓰는 보강이 필요하다. “같은 카메라가 비슷한 번호로 거의 동시에 만든 파일” 이라는 관계가 살아 있는 한, 사진의 시각을 영상에 다시 붙여줄 수 있다.
Q4. 분류 기준(90분 / 500m)은 어떻게 정했나요?
여행 동선의 “느낌” 에서 시작했다. “한 활동에서 다음 활동으로 넘어갈 때 보통 한 시간 반쯤은 뜨더라, 거리도 한 블록 이상은 움직이더라” 라는 어림짐작. 처음 돌리고 묶음이 너무 작거나 너무 크면 숫자를 조정한다. 장거리 자동차 여행은 분 기준을 더 길게(예: 3시간), 동네 카페 투어는 짧게(예: 30분) 잡는 식으로 여행 성격에 맞춰 다시 잡으면 된다.
Q5. 그러면 폴더가 다 갈리고 나면, 폴더 이름은 어떻게 붙이나요?
이번 묶음은 “날짜_시작시각_평균좌표” 형식으로 기계가 자동으로 붙였다. 사람이 알아보기엔 좌표만 보고는 “여기가 어디지” 가 즉시 안 와닿는다. 그래서 다음 단계는 좌표를 사람이 읽을 수 있는 “장소 이름” 으로 바꾸는 일(역지오코딩이라고 부른다)이다. 좌표를 넣으면 “시즈오카현 미시마시” 같은 답을 돌려주는 무료 서비스들이 있어서, 이걸 폴더 이름에 자동으로 박는 흐름까지 가면 “폴더 이름만 봐도 어디인지 보이는” 상태가 된다. 이건 다음 회차 후보다.
마무리
이번에 풀린 한 줄은 이거였다. 사진은 이미 자기가 언제·어디서 찍혔는지 알고 있다. 그러면 분류는 “AI가 사진을 알아보는 일” 이 아니라 “파일에 적힌 메모지를 읽고 시간·위치가 가까운 것끼리 묶는 일” 이 된다. 6,000장이든 6만 장이든 그 작업은 양과 무관하다.
7편이 “AI에게 보라고 하지 말고 코드를 짜라” 였다면, 8편은 한 발 더 들어간 셈이다 — “코드를 짜기 전에, 파일이 이미 답을 들고 있는지부터 확인하라.” 비개발자에게 가장 큰 절약은 코드 잘 짜는 게 아니라, “애초에 안 짜도 되는 일을 알아보는 눈” 같다.
2026년 5월 현재 상태
- 입력 폴더: 시즈오카 보정본 5,907개 (한 폴더)
- 출력 폴더: 날짜·활동 단위 44개 묶음 (8일분 여행 동선 그대로)
- 메타 추출 성공률 99.8% / GPS 매칭 96.3%
- AI가 본 사진: 0장 (메모지만 읽음) / 토큰: 규칙 다듬는 대화 분량
- 미해결 회차 후보: 영상 시각 보강(같은 번호 사진에서 가져오기) · 좌표 → 장소 이름 자동 변환(역지오코딩) · 폴더 이름 사람 친화 포맷
undefined