Skip to content

Uhok PaymentServer v3.2.0 Release

Latest

Choose a tag to compare

@khangte khangte released this 23 Oct 09:42
· 13 commits to v3.2_webhook_auto since this release

Uhok PaymentServer v3.2.0 Release Notes

[v3.2.0] - 2025-10-23

🎯 주요 변경사항

✨ 새로운 기능

1. 웹훅 재시도 로직 구현

  • 지수 백오프(Exponential Backoff)를 사용한 스마트 재시도 시스템
  • 네트워크 오류, 서버 에러(5xx), 타임아웃에 대해 자동 재시도
  • 최대 3회 재시도 (총 4번 시도)로 안정성 대폭 향상

2. 웹훅 실패 시 결제 취소 처리

  • 모든 재시도 실패 시 결제 상태를 PAYMENT_CANCELLED로 자동 전환
  • 데이터 정합성 보장 및 일관된 상태 관리
  • 클라이언트 에러(4xx)는 즉시 실패 처리로 불필요한 재시도 방지

3. 환경변수 기반 재시도 설정

WEBHOOK_MAX_RETRIES=3      # 최대 재시도 횟수 (기본값: 3)
WEBHOOK_RETRY_DELAY=1.0    # 재시도 기본 대기시간(초) (기본값: 1.0)
WEBHOOK_TIMEOUT=10.0       # 웹훅 요청 타임아웃(초) (기본값: 10.0)

🔧 개선사항

1. 안정성 향상

  • 일시적인 네트워크 문제로 인한 결제 실패 최소화
  • 서버 과부하 상황에서의 자동 복구 능력 향상
  • 웹훅 전송 성공률 대폭 개선

2. 에러 처리 개선

  • 상세한 로깅을 통한 디버깅 및 모니터링 강화
  • 재시도 과정의 투명한 로그 기록
  • 최종 실패 시 명확한 에러 메시지 제공

3. 운영 편의성

  • 환경변수로 재시도 정책 유연하게 조정 가능
  • 운영 환경별 맞춤형 재시도 설정 지원
  • 테스트 스크립트 제공으로 재시도 로직 검증 가능

🔄 마이그레이션 가이드

기존 사용자 (v3.1.0 → v3.2.0)

  1. 완전 하위 호환: 기존 API 엔드포인트 모두 동일하게 유지
  2. Docker 이미지 업데이트: payment-server:3.2.0으로 업그레이드
  3. 환경 변수: 기존 설정 그대로 사용 가능 (새로운 재시도 설정은 선택사항)
  4. 롤백 가능: 문제 발생 시 payment-server:3.1.0으로 즉시 롤백 가능

새로운 사용자

  1. 환경 변수 설정: .env 파일 생성 (재시도 설정 포함)
  2. Docker Compose 실행: docker-compose up -d
  3. 서비스 확인: 브라우저에서 서비스 접속

✅ 호환성

🔄 API 호환성

  • 완전 하위 호환: 기존 API 엔드포인트 모두 동일하게 유지
  • 응답 형식: 모든 API 응답 형식 변경 없음
  • 웹훅 형식: 웹훅 전송 형식 및 헤더 동일
  • 새로운 상태: PAYMENT_CANCELLED 상태 추가 (기존 클라이언트 영향 없음)

🐳 Docker 호환성

  • 이미지 태그: payment-server:3.2.0
  • 포트: 9002 (FastAPI), 8502 (Streamlit) 동일
  • 환경변수: 기존 환경변수 모두 동일하게 사용

🐛 알려진 이슈

  • 없음 (기존 기능과 동일하게 동작하며 안정성만 향상)

📊 성능 개선

  • 웹훅 전송 성공률: 일시적 네트워크 오류 시 자동 복구로 성공률 향상
  • 시스템 안정성: 서버 과부하 상황에서의 자동 재시도로 안정성 증대
  • 운영 효율성: 수동 개입 없이 자동으로 문제 해결

🧪 테스트

  • 재시도 로직 테스트 스크립트: test_webhook_retry.py 제공
  • 다양한 시나리오: 정상, 서버 에러, 클라이언트 에러, 연결 실패 테스트
  • 자동화된 검증: CI/CD 파이프라인에서 재시도 로직 자동 검증