스톡 이미지 메타데이터 자동화: Gemini Gem과 JSZip으로 구축한 워크플로우

스톡 이미지 작가로서 가장 번거로운 과정 중 하나인 메타데이터 작성을 자동화한 경험을 기록한다. 고해상도 이미지 처리의 효율성을 높이기 위해 직접 제작한 이미지 리사이징 웹앱과 Gemini Gem을 활용한 워크플로우를 소개한다.
스톡 이미지 제출의 병목 현상
Shutterstock이나 Getty Images와 같은 글로벌 스톡 사이트에 사진을 제출하려면 제목, 설명, 태그, 카테고리를 영문으로 상세히 작성해야 한다. 한두 장은 직접 할 수 있지만, 수십 장이 넘어가면 단순 반복 작업에 많은 에너지가 소모된다.
최근에는 LLM(대형 언어 모델)을 활용해 이미지를 분석하고 메타데이터를 추출할 수 있다. 하지만 Ricoh GR3나 Sony a7m3로 촬영한 고화질 JPEG 원본을 그대로 업로드하면 업로드 속도가 저하되고 AI 모델의 토큰 소모 및 처리 효율이 떨어지는 문제가 발생한다. 이를 해결하기 위해 전처리 도구와 전용 AI 에이전트를 구축했다.
브라우저 기반 이미지 리사이징 웹앱: Stock Resizer
AI가 사물을 인식하고 분위기를 파악하는 데는 원본의 초고해상도가 필요하지 않다. 긴 축 기준 2000px 정도면 충분하다는 점에 착안하여, 클라이언트 사이드에서 작동하는 리사이징 도구를 개발하여 GitHub Pages에 배포했다.
이 도구는 서버 통신 없이 브라우저의 Canvas API를 사용해 이미지를 리사이징하므로 개인정보가 보호되고 처리 속도가 빠르다. 사용자는 사진을 선택하기만 하면 설정된 해상도와 품질로 변환된 압축 파일을 즉시 얻을 수 있다.
JSZip을 활용한 다중 파일 압축 로직
여러 장의 리사이징된 이미지를 개별적으로 다운로드하는 것은 비효율적이다. 이를 해결하기 위해 JSZip 라이브러리를 사용하여 브라우저 메모리 내에서 파일들을 하나의 압축 파일로 묶는 과정을 자동화했다. 핵심 코드는 다음과 같다. 혹시 전체 코드가 궁금하다면 아까 올린 링크의 깃헙 repo 주소를 가서 확인해보면 된다.
// JSZip 인스턴스 생성
const zip = new JSZip();
// 리사이징된 이미지들을 순회하며 압축 파일에 추가
for (let i = 0; i < files.length; i++) {
const resizedBlob = await resizeImage(files[i], maxSize);
zip.file(files[i].name, resizedBlob);
}
// 압축 파일 생성 및 다운로드
const content = await zip.generateAsync({ type: "blob" });
saveAs(content, `resized_images.zip`);
이 방식을 통해 사용자는 수십 장의 이미지를 단 한 번의 클릭으로 Gemini 분석에 최적화된 상태로 준비할 수 있다.
전용 에이전트: Stock Metadata Master Gem

단순히 사진을 분석하는 것을 넘어, 파일명에 담긴 정보를 바탕으로 기종별 특성을 반영하도록 Gemini Gem을 설계했다.
- Ricoh (R{숫자}.jpg): 거리 사진과 감성적인 스냅의 특징을 살려 빈티지하고 분위기 있는(Atmospheric) 키워드를 우선 배치한다.
- Sony (DSC{숫자}.jpg): 상업적 활용도가 높은 고해상도 작업물의 특징을 살려 기술적 완성도와 선명함(Sharp)을 강조하는 키워드를 생성한다.
Gem은 업로드된 압축 파일을 해제하고 각 이미지를 분석한 뒤, 스톡 사이트에서 바로 활용할 수 있는 형식의 엑셀(.xlsx) 파일을 생성한다. 여기에는 영문 제목, 설명, 30~50개의 태그, 카테고리가 포함된다.
효율화된 작업 프로세스
구축한 도구들을 활용한 현재의 작업 흐름은 다음과 같다.
- 웹앱 접속: 촬영한 사진들을 드래그하여 2000px로 리사이징된 압축 파일을 생성한다.
- Gem 전달: 생성된
.zip파일을 ‘Stock Metadata Master’ Gem에 업로드한다. - 데이터 취합: Gem이 내놓은 엑셀 파일을 다운로드한다.
- 최종 업로드: 스톡 사이트 기고자 페이지에서 사진과 메타데이터를 일괄 업로드하여 제출을 마친다.
이러한 자동화 시스템을 통해 사진 한 장당 몇 분씩 걸리던 키워딩 작업 시간을 몇 초 단위로 단축했다. 개발자로서의 기술을 일상의 반복적인 작업에 적용하여 생산성을 높인 유의미한 시도였다. 혹시 이런 방식을 참고해서 진행하고 싶은 사람이 있다면 좋은 자료가 되길 바란다.


