Repository navigation
·
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)
- 완전 하위 호환: 기존 API 엔드포인트 모두 동일하게 유지
- Docker 이미지 업데이트: payment-server:3.2.0으로 업그레이드
- 환경 변수: 기존 설정 그대로 사용 가능 (새로운 재시도 설정은 선택사항)
- 롤백 가능: 문제 발생 시 payment-server:3.1.0으로 즉시 롤백 가능
새로운 사용자
- 환경 변수 설정: .env 파일 생성 (재시도 설정 포함)
- Docker Compose 실행: docker-compose up -d
- 서비스 확인: 브라우저에서 서비스 접속
✅ 호환성
🔄 API 호환성
- 완전 하위 호환: 기존 API 엔드포인트 모두 동일하게 유지
- 응답 형식: 모든 API 응답 형식 변경 없음
- 웹훅 형식: 웹훅 전송 형식 및 헤더 동일
- 새로운 상태:
PAYMENT_CANCELLED상태 추가 (기존 클라이언트 영향 없음)
🐳 Docker 호환성
- 이미지 태그: payment-server:3.2.0
- 포트: 9002 (FastAPI), 8502 (Streamlit) 동일
- 환경변수: 기존 환경변수 모두 동일하게 사용
🐛 알려진 이슈
- 없음 (기존 기능과 동일하게 동작하며 안정성만 향상)
📊 성능 개선
- 웹훅 전송 성공률: 일시적 네트워크 오류 시 자동 복구로 성공률 향상
- 시스템 안정성: 서버 과부하 상황에서의 자동 재시도로 안정성 증대
- 운영 효율성: 수동 개입 없이 자동으로 문제 해결
🧪 테스트
- 재시도 로직 테스트 스크립트:
test_webhook_retry.py제공 - 다양한 시나리오: 정상, 서버 에러, 클라이언트 에러, 연결 실패 테스트
- 자동화된 검증: CI/CD 파이프라인에서 재시도 로직 자동 검증