IDM-VTON 기반 글로벌 가상 피팅 플랫폼을 위한 다중 통화 처리 구현

해외 사용자를 대상으로 한 가상 피팅 서비스에서 통화 표시 문제로 고민 중이라면? IDM-VTON은 이제 다양한 지역 통화 형식을 유연하게 지원하여, 전 세계 시장을 위한 전자상거래 플랫폼 구축을 손쉽게 도와줍니다.

통화 포맷 설정 핵심 로직

gradio_demo/app.py 내부에 통합된 통화 포맷터는 주요 화폐 기호를 자동으로 매핑합니다. 아래는 재구성된 예시 코드입니다:

def display_amount(value, unit_code='USD'):
    currency_map = {
        'USD': lambda x: f"${x:,.2f}",
        'EUR': lambda x: f"{x:,.2f}€",
        'CNY': lambda x: f"¥{x:,.2f}",
        'JPY': lambda x: f"¥{int(x)}"
    }
    formatter = currency_map.get(unit_code, currency_map['USD'])
    return formatter(value)

지역별 가격 표시 설정

configs/region_settings.json 파일을 통해 기본 통화 및 지원 목록을 정의할 수 있습니다:

{
  "currency": {
    "base": "USD",
    "available": ["USD", "EUR", "GBP", "CNY", "KRW", "JPY"],
    "rate_source": "https://api.fxrates.io/v1/latest"
  }
}

실시간 환율 변환 구현

src/currency_service.py에서 환율 캐싱과 API 호출을 결합한 변환 함수를 제공합니다:

from datetime import datetime, timedelta

_rate_cache = {}

def convert_currency(src, dst, amount):
    cache_key = f"{src}_{dst}"
    now = datetime.now()
    
    if cache_key in _rate_cache:
        rate_data = _rate_cache[cache_key]
        if now - rate_data['timestamp'] < timedelta(hours=1):
            return amount * rate_data['rate']
    
    # 외부 API 호출 후 캐시 저장 (간략화)
    fetched_rate = fetch_live_rate(src, dst)
    _rate_cache[cache_key] = {'rate': fetched_rate, 'timestamp': now}
    return amount * fetched_rate

기존 전자상거래 시스템 연동 방법

  1. 데이터 모델 수정: data/catalog_*.json 내 가격 필드에 통화 코드 추가
  2. UI 컴포넌트 확장: Gradio 인터페이스에 통화 선택 드롭다운 삽입
  3. 비즈니스 로직 삽입: inference.py 내 추천 가격 계산 시 통화 변환 적용

운영 팁

  • 환율은 최소 1시간 단위로만 갱신하여 API 부하 감소
  • 사용자 세션에 따라 기본 통화 자동 감지 (IP 또는 브라우저 언어 기반)
  • 가격 범위 표시 시 시작/종료 금액 모두 변환 적용
  • 소수점 처리 규칙은 지역별 회계 규정 준수 (예: 일본 엔은 정수만 표시)

태그: IDM-VTON 가상피팅 다중통화지원 전자상거래 환율변환

10월 9일 12:17에 게시됨