개발기
Screenshot Renamer 개발기 — AI가 읽고, 사람은 확인하고
개발 발행 3분 읽기
#Screenshot Renamer#개발기#AI#macOS#Ollama
Screenshot Renamer 프로젝트 보기Screenshot Renamer는 날짜만 적힌 채 쌓이는 스크린샷을 로컬 비전 모델이 읽고 내용에 맞는 이름을 제안하는 macOS 앱입니다. 제안을 바로 적용하지 않고, 썸네일을 크게 보며 이름을 고치거나 파일별로 제외한 다음 한꺼번에 반영할 수 있습니다.
로컬 비전 모델의 쓸모를 찾다가 시작했습니다#
여러 로컬 모델의 이미지 이해 능력을 비교하면서, 화면 안의 제목과 UI를 읽고 요약하는 일이 꽤 잘 맞는다는 것을 확인했습니다. 동시에 스크린샷 폴더에는 나중에 검색하기 어려운 기본 이름이 계속 쌓이고 있었어요. 두 문제를 연결하면 이미지를 외부 서비스에 보내지 않고도 파일을 정리할 수 있겠다는 생각이 들었습니다.
기존 명령줄 파이프라인은 분석 자체는 했지만 매번 명령을 입력해야 했고, 결과를 눈으로 대조하기 어려웠습니다. 모델 선택부터 진행 상태, 결과 검토까지 한 화면에서 끝내는 SwiftUI 앱으로 옮긴 이유입니다.
AI에게 파일 변경 권한부터 주지 않았습니다#
파일 이름은 작아 보여도 링크와 작업 기억을 깨뜨릴 수 있는 변경입니다. 그래서 흐름을 분석 → 검토 → 적용으로 분리했습니다. 모델이 이름과 근거를 제안하면 앱은 원본과 제안을 나란히 보여 주고, 확신이 낮은 항목을 먼저 모아 줍니다. 사용자는 썸네일을 확대하고, 제안 이름을 직접 고치거나 그 파일만 작업에서 뺄 수 있습니다.
검토 중 수정한 내용이 다시 분석 결과에 덮이지 않도록 사용자 선택을 별도 상태로 관리했습니다. 실제 변경 직전에는 대상과 충돌을 다시 확인해, 화면에서 승인한 목록과 디스크에서 바뀌는 목록이 같도록 만들었습니다.
개인정보와 되돌리기를 같은 설계에 넣었습니다#
기본 설정에서는 이미지를 Mac의 로컬 Ollama로 보내며 외부 API를 호출하지 않습니다. 필요하면 사용자가 직접 지정한 다른 Ollama 서버를 쓸 수도 있습니다. 파일명에도 화면 속 실제 개인정보 값을 복사하지 않고 “카드번호”, “로그인 화면”처럼 종류만 남기도록 프롬프트를 제한했습니다. 검색 가능한 이름을 만들려다 민감한 값이 Finder에 드러나는 일을 막기 위해서입니다.
또한 파일을 건드리기 전에 원래 이름과 새 이름을 되돌리기 기록으로 먼저 저장합니다. 모델이 틀릴 가능성을 없다고 가정하는 대신, 사람이 확인하고 필요하면 이전 상태로 돌아갈 수 있게 한 것이 이 앱의 핵심 안전장치입니다.
지금은#
Screenshot Renamer는 무료 오픈소스로 공개되어 있습니다. 설치된 비전 모델 중 하나를 골라 폴더를 분석하고, 제안 검토와 일괄 적용을 할 수 있습니다. 앞으로도 더 많은 자동 변경보다, 로컬 처리와 명시적인 승인이라는 경계를 지키면서 정리 시간을 줄이는 방향으로 발전시키려 합니다.