피드로 돌아가기
Dev.toBackend
원문 읽기
Provider Abstraction과 Freeze-Settle 패턴 기반의 AI 이미지 생성 시스템 설계
Building an AI Clothes Changer: provider abstraction, async jobs, and a credit system that won't lose money
AI 요약
Context
AI Provider의 빈번한 정책 변경과 API 불안정성으로 인한 시스템 경직성 해결 필요. 수십 초에서 수 분이 소요되는 AI 생성 작업의 비동기 처리 및 동시성 제어 기반의 신뢰할 수 있는 크레딧 결제 시스템 구축이 핵심 과제.
Technical Solution
- Factory Pattern 기반 Provider Interface 설계를 통한 특정 AI API 종속성 제거 및 환경 변수 변경만으로 Provider 교체가 가능한 유연성 확보
- Webhook 기반의 Async Callback 아키텍처를 도입하여 롱러닝 잡의 요청 블로킹 방지 및 상태 동기화 최적화
- 외부 API 생성 결과물의 자체 저장소(Cloudflare R2) 재업로드를 통한 링크 만료 문제 해결 및 데이터 소유권 확보
- 크레딧 관리의 'Freeze $\rightarrow$ Settle/Release' 상태 머신 도입으로 동시 요청에 따른 과다 청구 방지 및 실패 시 자동 환불 보장
- FIFO(First-In-First-Out) 방식의 패키지 소진 로직을 적용하여 만료 임박 크레딧 우선 소비 및 회계 처리 단순화
실천 포인트
- 외부 API 의존성을 인터페이스로 추상화하여 벤더 락인(Vendor Lock-in) 방지 - 결제 및 포인트 시스템 설계 시 'Hold(Frozen)' 상태를 도입하여 원자성 확보 - 비동기 작업의 최종 상태 결정권(Source of Truth)을 Webhook으로 일원화 - 외부 서비스 생성 리소스의 라이프사이클을 제어하기 위해 자체 스토리지로 즉시 이전