프로젝트 배경
1) 예상 리스크 및 대응 계획 - 정기결제 자동 갱신 시 서버 장애로 일부 구독자의 갱신이 누락될 수 있으므로 — 갱신 실행 결과를 BillingAttempt 테이블에 적재하고 누락 건을 주기적으로 재처리하는 보상 로직을 설계하여 대응합니다. - 플랜 가격 변경 시 기존 구독자의 다음 결제 금액 반영 정책이 복잡할 수 있으므로 — 플랜 버전 관리(Plan versioning)를 도입하여 기존 구독자는 이
프로젝트 성과
빌링키 기반 정기결제와 지수 백오프 재시도를 조합한 자동 갱신 구조를 설계
빌링키 발급으로 카드 정보 없이 정기결제를 처리하고, 결제 실패 시 1일→3일→7일 간격의 지수 백오프 재시도 정책을 DB 플래그로 관리하는 자동 갱신 파이프라인을 구현합니다.
구독 상태 전이를 상태머신 패턴으로 구현하여 잘못된 전이를 서버에서 차단
active·paused·cancelled 상태 간 허용된 전이만 Server Action에서 실행 가능하도록 상태머신을 구현하여 잘못된 구독 상태 조작을 방어합니다.
잔여 구독 기간 계산·환불·상태 변경을 Prisma 트랜잭션으로 묶어 원자적 해지를 구현
해지 요청 처리 중 네트워크 오류 등으로 일부 단계만 실행되는 상황을 방지하기 위해 모든 변경을 단일 트랜잭션으로 처리하는 안전한 해지 플로우를 설계합니다.
Prisma groupBy·Route Handler 캐싱 결합으로 매출분석 API를 설계
Prisma groupBy로 월별 MRR·구독 수를 집계하고, Next.js Route Handler에 캐싱 헤더를 설정하여 동일 통계 요청이 반복될 때 DB 조회 없이 응답하는 구조를 구현합니다.
핵심 기능
진행 단계
구독 모델 설계
2026.04.
Plan/Subscription/BillingCycle Prisma 스키마 설계
프로젝트 상세
1) 포트폴리오 소개 구독 기반 SaaS 서비스의 결제 라이프사이클을 관리하는 어드민 플랫폼을 설계합니다. 토스페이먼츠 정기결제 API를 활용하여 구독 플랜 관리, 자동 갱신 처리, 구독 해지·환불 워크플로우를 구현하며, 플랜별 매출 분석 대시보드를 포함합니다. 2) 작업 범위 - 구독 플랜 관리: 월간·연간 구독 플랜을 생성하고 가격·기간·혜택을 설정하는 관리 화면을 제공합니다. - 정기결제 자동







