피드로 돌아가기
Online School, Messy Billing, and the Proration Rabbit Hole
Dev.toDev.to
Backend

Proration 로직 도입을 통한 구독 플랜 변경 시 정밀 과금 체계 설계

Online School, Messy Billing, and the Proration Rabbit Hole

Omojola Tomiloba David2026년 6월 6일4intermediate

Context

단순 결제 시스템 구조에서는 구독 기간 도중 플랜 변경 시 발생하는 잔여 가치 산정 불가. 중복 과금 또는 과소 과금으로 인한 사용자 경험 저하 및 비즈니스 손실 가능성 존재.

Technical Solution

  • 사용 기간에 비례하여 비용을 산정하는 Proration 메커니즘 도입
  • (잔여 시간 / 전체 구독 시간) × 현재 플랜 가격 공식을 통한 Remaining Credit 산출
  • 신규 플랜 가격에서 산출된 Remaining Credit을 차감하여 최종 청구 금액을 결정하는 과금 로직 구현
  • Subscription Table과 Plan Change Table을 분리하여 플랜 변경 이력 및 적용 크레딧의 Historical Data 추적 구조 설계
  • Daily basis 기반의 정밀한 잔여 가치 계산 규칙 적용으로 과금 오차 최소화
  • Upgrade 시 즉시 청구 및 Downgrade 시 Store Credit 부여 등 비즈니스 룰에 따른 분기 처리 로직 설계

- 구독 시스템 설계 시 단순 결제 테이블 외에 플랜 변경 이력을 기록하는 Audit Log 테이블 확보 여부 검토 - Up/Down-grade 시의 잔여 가치 처리 방침(환불, 크레딧 전환, 갱신 시 적용)에 대한 비즈니스 요구사항 정의 - 시간 단위(Daily, Weekly, Monthly)에 따른 Proration 정밀도 설정 및 이에 따른 오차 범위 확인

원문 읽기