지난 2월에 저는 한 번에 40개의 벡터 일러스트레이션을 Adobe Stock에 업로드했습니다. 스스로 자랑스러웠습니다. 그런데 사흘 뒤, 그중 31개가 거절 통보를 받았습니다. 아트워크 때문이 아니었습니다. 메타데이터 때문이었습니다. 잘못된 키워드, 마치 키워드를 나열한 듯한 제목, 심지어 파일명만 소문자로 적은 제목을 가진 파일도 있었습니다. 저는 업로드 목록보다 더 긴 거절 목록을 들여다보며, 이 문제가 스스로 해결될 리가 없다는 것을 깨달았습니다.
그것이 제가 메타데이터를 사후 처리(afterthought)로 취급하는 것을 멈추고, 체크리스트로 다루기 시작한 순간입니다. 지금의 체크리스트는 다음과 같으며, 이것 덕분에 제 거절률은 거의 0%까지 떨어졌습니다.
CSV 헤더는 제안이 아니라 관문이다
모든 스톡 플랫폼은 사람이 작업물을 보기 전에 메타데이터 파일을 검증합니다. Adobe의 업로드용 CSV는 고정된 5개 열(column) 헤더를 가지고 있습니다. Vecteezy는 4개의 열을 사용하고, Dreamstime은 15개를 요구합니다. 단 하나의 열만 잘못하거나, 순서가 틀리거나, 이름이 다르면 파일은 검토되기 전에 즉시 거절됩니다.
저는 스프레드시트를 직접 수정하다가 두 개의 열을 전치(transposing)했던 경험으로 이를 배웠습니다. 전체 배치(batch)가 모두 실패했습니다. 그래서 저는 make_metadata.py라는 스크립트를 작성했는데, 이 스크립트는 각 플랫폼이 요구하는 정확한 헤더만을 기록하고 그 외에는 아무것도 추가하지 않습니다. 추가 열도 없고, 창의적인 형식 지정도 없습니다. 이 스크립트는 폴더에 있는 파일들을 읽어 Adobe, Vecteezy 또는 Dreamstime용 올바른 CSV를 단 하나의 명령어로 출력합니다:
python make_metadata.py ./my-assets --platform adobe --out metadata.csv --ext .jpg
헤더 확인은 피할 수 있는 가장 저렴한 거절 사유이자, 가장 흔한 문제입니다. CSV가 올바르다면, 이미 실패의 한 가지 범주를 제거한 것입니다.
제목과 키워드에도 규칙이 있으며, 검토자들이 이를 강제한다
Adobe는 키워드 문자열(keyword strings)인 제목을 거절합니다.
첫 번째 제목은 스크립트에 의해 타이틀 케이스(title-cased)로 된 파일명에서 가져옵니다. 스테이징 단계에서는 괜찮습니다. 하지만 제출용으로는 적합하지 않습니다. 어떤 것이든 외부로 나가기 전에, 저는 파일명 제목을 실제 제목으로 교체하고 키워드 목록을 세 가지 질문과 대조하여 확인합니다: 각 키워드가 이미지에 실제로 보이는 것을 설명하는가, 가장 중요한 개념이 앞에 있는가, 그리고 '배경(background)'이나 '디자인(design)'처럼 아무 역할도 하지 않는 채우기 용어(filler terms) 없이 키워드 제한 내에 있는가?
단 한 번의 검토 과정만으로, 에셋당 2분 정도 걸리는 이 작업이 제가 바꾼 다른 어떤 것보다 더 많은 거절을 막아주었습니다.
중복 업로드는 계정 플래그를 받게 합니다
이것 때문에 저는 큰일 날 뻔했습니다. 부분적인 실패 후 배치 스크립트를 다시 실행한 뒤, 같은 파일을 20개나 거의 두 번 업로드할 뻔했습니다. 중복 제출은 어떤 스톡 플랫폼에서든 계정이 플래그를 받게 되는 가장 빠른 방법 중 하나입니다.
해결책은 아주 간단했습니다: 원장(ledger)을 만든 것입니다. upload_tracker.py는 무엇이 제출되었는지 기록하는 텍스트 파일 기반의 기록 장치입니다. 업로드 실행 전에, 저는 보류 중인 항목들을 확인합니다:
python upload_tracker.py pending items.txt
python upload_tracker.py done "asset-001.jpg"
이제 재실행은 물리적으로 중복 업로드를 할 수 없습니다. 왜냐하면 트래커가 이미 완료된 것을 알고 있기 때문입니다. 이것은 파이썬 표준 라이브러리만을 사용하므로, 이 전체 파이프라인이 존재하는 1 vCPU, 2 GB 서버를 포함하여 어디서든 실행됩니다.
업로드 전에 기술적 규칙과 비교하여 아트를 확인하세요, 나중에가 아닙니다
Adobe의 기술 요구 사항은 공개되어 있고 지루합니다: 최소 해상도, 눈에 보이는 인공물(artifacts) 없음, 올바른 파일 형식, 워터마크 없음. AI 생성 작업은 추가적인 검토를 받으며, 검토자들은 손이 뒤틀리거나(mangled hands), 텍스트가 깨지거나(garbled text), 요소가 중복된 경우를 면밀히 살펴봅니다. 제가 생성하는 모든 AI 이미지는 실제 비용이 들기 때문에, 거절은 단순히 거절일 뿐만 아니라 검토 시간 낭비에 더해 생성 비용 낭비까지 의미합니다.
내 사전 제출 과정은 이제 기계적입니다. 저해상도 미리보기를 렌더링하고 실제로 그것을 살펴보고, 플랫폼 최소 사양에 맞춰 치수를 확인하며, 파일이 깨끗하게 열리는지 점검한 후에야 업로드 폴더로 들어갑니다. 또한 300dpi로 렌더링하는 대신 60dpi에서 미리보기를 검사하는 것은 2GB RAM과 GPU가 없는 제 작은 서버의 메모리를 안정적으로 유지시켜 주는데, 이는 매우 중요합니다.
체크리스트 자체 요약
배치 작업을 보내기 전에:
- 스크립트로 생성된 CSV 파일이며, 플랫폼별 정확한 열 개수(Adobe는 5개, Vecteezy는 4개, Dreamstime은 15개)를 갖추고 있다.
- 모든 제목이 단순 키워드 문자열이 아닌 실제 설명 구문이다.
- 키워드는 관련성 순으로 배열되어 있으며, 보이는 콘텐츠를 모두 설명하고 불필요한 내용은 없다.
- 추적기(Tracker)가 이 배치에 포함된 에셋 중 이미 제출된 것이 없음을 확인한다.
- 저해상도 미리보기를 통해 아티팩트, 깨진 텍스트, 해부학적 오류 등을 시각적으로 점검한다.
- 파일 형식과 해상도가 플랫폼 최소 사양과 일치하는지 검증한다.
총 여섯 가지 항목입니다. 40개짜리 배치를 처리하는 데는 아마 15분 정도 걸립니다. 이 과정 덕분에 Adobe 거절률이 40개 중 31개에서 한 자릿수로, 그리고 결국에는 일상적인 배치에서는 거의 0에 가깝게 떨어졌습니다.
이 모든 것이 특별한 기술은 아닙니다. 그것이 요점입니다. 거절 사유는 결코 아트의 품질 때문이 아니었습니다. 프로세스 문제였고, 프로세스는 체크리스트와 두 개의 작은 스크립트로 해결할 수 있습니다.
도구가 있는 곳
이 체크리스트는 39개의 완성된 제품, 약 856MB의 결과물을 패키징하는 데 사용된 것과 동일한 파이프라인에서 구축된 규정 준수 메타데이터 키트(compliance metadata kit)에 포함되어 있습니다. 여기에는 플랫폼별 올바른 헤더를 작성하는 정확한 메타데이터 스크립트, 중복 게시를 방지하는 업로드 추적기, 그리고 완성된 에셋을 판매 가능한 제품으로 변환하는 데 제가 사용하는 패키징 도구들이 포함되어 있습니다. 만약 여러분도 비슷한 종류의 파이프라인을 구축하고 있다면, 이것은 제가 지난 2월 배치 전에 가졌으면 좋았을 도구입니다.
규정 준수 메타데이터 키트 받기
디지털 제품을 구축하고 계신가요? 디지털 제품 판매자를 위한 무료 가이드 및 키트를 확인하세요.