단톡방 사진 자동 분류, 절반의 성공과 오발송 사고
AI에게 메신저 클릭을 맡겼다가 단톡방에 엉뚱한 메시지가 나갔습니다
결과부터 씁니다. 일주일치 업무 사진이 쌓인 단톡방을 AI 에이전트(에이전트라는 말이 낯설다면 용어를 모아 정리한 글을 함께 두었습니다)에게 통째로 맡겼다가 다운로드는 한 장도 못 받았고, 대신 단톡방에 엉뚱한 메시지가 나가는 사고를 냈습니다. 두 단계로 나뉜 작업 중 앞 단계에서 막힌 결과입니다.
- 메신저 PC 화면을 에이전트가 직접 클릭해서 사진을 내려받는 방식은 끝까지 작동하지 않았습니다. 다운로드 0건.
- 원인은 모델 성능이 아니었습니다. 메신저 창의 UI 인식 문제라, 상위 모델로 바꿔도 달라지지 않는다는 결론이 나왔습니다.
- 시도 중에 좌표를 잘못 잡는 바람에 업무용 단톡방에 의도하지 않은 메시지가 그대로 발송됐습니다. 거기서 멈췄습니다.
- 대신 확정한 구조는 2단계 분업입니다. 메신저에서 사진을 일괄 저장하는 것까지만 사람이 맡고, 그 뒤의 폴더 생성과 분류와 이동은 전부 에이전트가 처리하는 방식입니다.
정리하면 이렇습니다. “메신저에서 사진을 꺼내오는 일”과 “꺼내온 사진을 분류하는 일”은 이름만 붙어 있을 뿐 난이도가 완전히 다른 작업이었습니다. 앞은 매우 어렵고 뒤는 쉽습니다. 이 둘을 한 덩어리로 묶어 요청한 게 실패의 출발점이었습니다.

자동 분류를 하려던 이유
업무용 단톡방에는 현장 사진이 하루 종일 올라옵니다. 패턴은 거의 일정합니다. 먼저 현장명을 텍스트로 한 줄 쓰고, 그다음에 사진 여러 장을 묶음으로 올립니다.
문제는 이 사진들이 단톡방 안에만 남는다는 점입니다. 나중에 특정 현장의 특정 날짜 사진을 찾으려면 대화창을 위로 한참 올려가며 눈으로 훑는 수밖에 없는데, 일주일만 지나도 그 스크롤 양이 만만치 않습니다.
그래서 요청은 단순했습니다. 최근 일주일간 올라온 사진을 바탕화면에 내려받되 파일명은 손대지 말고 폴더만 만들어 달라. 폴더명 규칙도 제가 직접 정해서 넘겼습니다.
확정한 폴더 규칙
- 폴더명은 `yymmdd_현장명` 형식.
- 날짜는 사진 파일에 들어 있는 시간정보를 읽어 정합니다.
- 파일명은 메신저가 붙여준 원본 이름 그대로 둡니다. 바꾸는 순간 나중에 중복 여부를 판단할 근거가 사라지기 때문입니다.
- 현장명은 사진 묶음 직전에 올라온 텍스트 메시지에서 가져옵니다.
규칙 자체는 사람이 손으로 하던 방식을 그대로 옮긴 것이라 논쟁의 여지가 없었고, 실제로 끝까지 유효했습니다. 무너진 건 규칙이 아니었습니다. 실행 단계였습니다.
파일명을 그대로 두기로 한 데는 이유가 있습니다. 메신저가 붙이는 파일명에는 저장 시점 정보가 들어갑니다. 이름을 예쁘게 바꿔버리면 같은 사진을 두 번 받았을 때 그게 중복인지 다른 사진인지 알아볼 방법이 없어집니다. 폴더로 묶는 일과 이름을 바꾸는 일은 별개입니다. 이번에 필요한 건 앞쪽뿐이었습니다.
실제로 벌어진 일
1차 시도: 창이 안 보인다는 답이 돌아왔습니다
대화 내용은 읽어냈습니다. 그런데 메신저 창이 실제 바탕화면에 표시되지 않는다며 저장 버튼을 누르지 못했고, 창을 화면 앞으로 띄워 달라는 요청이 돌아왔습니다.
여기서 하나 짚고 넘어갔습니다. 저는 이 작업이 백그라운드에서 계속 돌아가는 줄 알았습니다. “끝났어?” 아직 아무것도 되지 않았다는 답이 왔습니다. 확인해 보니 여기서 말하는 백그라운드란 “작업 중에 내 마우스와 키보드를 빼앗지 않는다”는 뜻이지, 창이 안 보여도 알아서 진행된다는 뜻이 아니었습니다. 화면 제어 방식은 화면에 보이는 것만 건드립니다.
꽤 중요한 구분입니다. 화면 제어형 자동화를 걸어놓고 다른 일을 하러 갈 수 있다고 생각하면 곤란합니다. 그 시간 동안 모니터는 뺏깁니다.
2차 시도: 창은 앞에 왔는데 클릭이 안 먹었습니다
창을 앞으로 띄운 뒤 다시 시켰습니다. 창 위치는 정상적으로 잡혔습니다. 그런데 사진 묶음 클릭도, 우측 메뉴 클릭도 전부 무반응이었습니다. 마우스는 움직입니다. 메신저가 반응을 안 합니다.
3차 시도: 검색은 되는데 입장이 안 됐습니다
처음부터 다시 해보라고 했습니다. 채팅방 검색창에 방 이름을 입력하는 것까지는 성공했고 검색 결과도 제대로 떴는데, 정작 그 결과를 클릭해서 채팅방에 들어가는 동작이 먹지 않았습니다. 목록은 보입니다. 못 들어갑니다.
4차 시도: 잘못 눌러 사고가 났습니다
이번엔 제가 경로를 직접 불러줬습니다. 사진을 클릭해서 뷰어를 열고, 사진 우측 하단의 아래 방향 화살표를 누르고, 거기서 묶음사진 전체저장을 누르면 된다고요.
경로대로 눌렀습니다. 다운로드는 실행되지 않았고 뷰어 창만 닫혔습니다. 바탕화면에도, 다운로드 폴더에도 새 파일은 없었습니다. 그 와중에 좌표가 어긋나면서 채팅 입력 영역이 눌렸고, 단톡방에 의도하지 않은 메시지가 발송됐습니다.
업무용 단톡방입니다. 여러 사람이 보고 있습니다. 이 시점에서 메신저 조작은 더 진행하지 않기로 하고 중단했고, 잘못 나간 메시지도 괜히 손대서 일을 키우지 않으려고 추가 조작 없이 그대로 뒀습니다.

안 된 이유
실패 원인을 정리하면 네 가지였습니다.
- 메신저의 사진과 메뉴가 일반적인 UI 요소로 인식되지 않습니다. 버튼이 버튼으로 안 잡히면 남는 건 좌표뿐입니다.
- 창 좌표와 실제 화면 좌표가 어긋나게 잡히는 경우가 있었습니다. 멀티 모니터 환경에서 특히 그랬습니다.
- 좌표로 찍는 방식은 사진 저장 버튼과 채팅 입력 영역을 구분하지 못합니다. 이번 사고가 그 결과입니다.
- 메신저 내부 캐시에서 사진을 직접 꺼내는 우회로도 막혀 있습니다. 캐시가 암호화된 `.cng` 형식이라 파일만 복사해서 복원하기는 어렵습니다.
중간에 상위 모델을 쓰면 달라지느냐고 물어봤습니다. 크게 달라지지 않는다는 답이었습니다. 추론 능력이 아니라 UI 인식과 좌표의 문제이기 때문에, 모델을 올리면 사진과 현장명을 짝짓는 판단 정확도는 조금 올라갈 수 있어도 버튼을 안정적으로 누르는 능력은 그대로입니다. 잘못 누를 위험도 그대로입니다.
속도 문제도 겹쳤습니다. 설령 클릭이 성공한다 해도 사진을 하나씩 열고 저장하는 방식은 너무 느렸습니다. 업무 시간에 돌릴 물건이 아니었습니다.

대신 확정한 방식
포기하지는 않았습니다. 대신 작업을 둘로 쪼갰습니다.
1단계: 사람이 맡습니다
메신저에서 대상 기간의 사진 묶음마다 우측 하단 저장 화살표를 누르고 묶음사진 전체저장을 실행한 뒤, 저장 위치는 임시 수집 폴더 한 곳으로 통일합니다. 파일명은 그대로 둡니다.
사람이 하면 클릭 몇 번입니다. 자동화가 가장 어려운 구간이 사람에게는 가장 쉬운 구간이었으니, 여기는 그냥 자동화 대상에서 빼는 편이 맞다고 판단했습니다.
2단계: 에이전트가 맡습니다
수집 폴더만 채워지면 그다음부터는 그냥 파일 시스템 작업이라 안정적으로 돌아갑니다.
- 수집 폴더의 파일 개수, 확장자, 타임스탬프를 먼저 스캔해서 보고받습니다. 이동 전 확인 절차입니다.
- 사진의 시간정보와 단톡방에 올라온 현장명 메시지 순서를 대조해 사진-현장 매핑 표를 만듭니다.
- 매핑 표를 승인한 뒤에 `yymmdd_현장명` 폴더를 만들고 파일명 변경 없이 옮깁니다.
- 매핑이 애매한 사진은 옮기지 않고 미분류 폴더에 남긴 뒤 목록으로 보고받습니다.
- 이동이 끝나면 원본 개수가 이동 개수와 미분류 개수의 합과 맞는지 검증합니다.
마지막 검증 항목을 넣은 이유는 이번 실패에서 배운 것과 같습니다. 자동화가 “했다”고 말하는 것과 실제로 된 것은 다릅니다. 개수를 세지 않으면 확인할 방법이 없습니다.
다른 사람이 같은 일을 시도한다면
이번 기록에서 남길 만한 판단 기준은 이 정도입니다. 길지 않습니다.
메신저나 그룹웨어처럼 자체 렌더링을 쓰는 프로그램의 화면을 AI에게 클릭시키는 자동화는, 적어도 지금은 믿기 어렵습니다. 버튼이 UI 요소로 노출되지 않으면 결국 좌표 찍기가 됩니다. 좌표 찍기는 틀렸을 때 조용히 끝나지 않습니다. 엉뚱한 걸 누릅니다.
특히 그 화면이 여러 사람이 보는 대화방이라면 실패 비용은 파일 하나 잘못 만드는 수준에서 끝나지 않습니다. 메시지가 나갑니다.
그래서 이제는 자동화 범위를 정할 때 “AI가 할 수 있느냐”보다 “실패했을 때 되돌릴 수 있느냐”를 먼저 봅니다. 파일 이동은 되돌릴 수 있습니다. 메시지 발송은 못 되돌립니다. 이번에는 그 구분을 미리 하지 않고 한 덩어리로 시켰다가 사고를 냈습니다.
시도해 볼 여지가 남은 방향이 하나 있기는 합니다. 메신저 조작만 담당하는 전용 매크로나 스크립트를 아예 따로 만들어 두는 것입니다. 다만 그것도 실제 화면에서 한두 번 검증을 거친 뒤에야 안심하고 돌릴 수 있는데, 그 검증 과정에서 또 잘못 눌릴 위험이 그대로 남습니다. 지금은 착수하지 않았습니다.
이 작업은 지금 1단계 수행을 기다리는 상태로 멈춰 있습니다. 2단계 분업 구조가 실제로 한 번 돌아가는 걸 보고 나서 정기 실행을 붙일지 판단할 생각입니다.