포스트

플레이스홀더에서 실제 이미지까지 — API 비용 아끼기

플레이스홀더에서 실제 이미지까지 — API 비용 아끼기

이미지 풀 100장+가 필요한데, DALL-E API는 장당 $0.04다. 개발 중에 매번 실제 이미지를 생성하면 비용이 누적된다.

해결: Pillow 플레이스홀더

검정 배경에 프롬프트 텍스트를 렌더링한 더미 이미지를 만들었다:

1
2
3
4
5
6
7
8
from PIL import Image, ImageDraw, ImageFont

def create_placeholder(prompt, theme, index, size=(1024, 1024)):
    img = Image.new('RGB', size, color='black')
    draw = ImageDraw.Draw(img)
    draw.text((20, 20), f"[{theme}_{index:02d}]", fill='white')
    draw.text((20, 60), prompt[:80], fill='gray')
    return img

프롬프트, 테마, 인덱스가 한눈에 보여서 디버깅에도 좋았다.

핵심: 메타데이터는 처음부터 실제와 동일하게

플레이스홀더지만 DB 구조, API, 추천 로직, 3축 태그는 전부 실제와 같다. 이미지 파일만 다를 뿐이다.

교체할 때는 같은 프롬프트를 DALL-E에 보내서 이미지만 바꾸면 된다. 코드 한 줄도 안 바꿨다.

플레이스홀더 개발 중 플레이스홀더 — 프롬프트와 메타데이터가 보인다

실제 이미지 같은 프롬프트로 DALL-E가 생성한 실제 이미지

개발 중 비용: $0. 교체 시에만 $0.04/장.

팁: 이런 방식은 이미지뿐 아니라 외부 API를 쓰는 모든 곳에 적용할 수 있다. Mock 데이터와 실제 데이터의 인터페이스를 동일하게 유지하는 것이 핵심이다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.