SubSovereign 작동 방식
앱에서 구독을 판매한다면, 반복해서 마주치는 어려운 질문이 하나 있습니다: 이 사용자가 지금 실제로 무엇을 결제했는가? SubSovereign이 그 답을 알려드립니다 — 안정적으로, 여러분의 인프라에서, 수익을 가져가지 않고. 이 페이지는 코드를 작성하기 전에 전체 개념을 설명합니다.
해결하는 문제
앱 스토어(Apple, Google, Amazon, Roku)는 각각 고유한 방식으로 결제를 처리하며, 영수증·갱신 규칙·예외 상황도 제각각입니다 — 무료 체험, 환불, 업그레이드, 결제 재시도, 가족 공유 등이 그 예입니다. 모든 스토어와 기기에서 "이 사용자가 Pro인가?"를 정확하게 판단하는 것은 실제로 쉽지 않은 일입니다. 그리고 앱 자체를 절대 신뢰해서는 안 됩니다: 클라이언트는 누구든 수정할 수 있고, 결제 고객인 척 위장할 수 있습니다.
SubSovereign은 이 문제를 올바르게 처리하는 중간 계층으로, 여러분이 직접 구축하고 유지보수할 필요가 없습니다.
핵심 개념
단 하나의 규칙이 있으며, 모든 것이 여기서 출발합니다:
앱은 요청하고, 서버가 결정한다.
앱은 사용자의 접근 권한을 직접 결정하지 않습니다 — SubSovereign에 요청하면, SubSovereign이 스토어와 직접 검증한 영수증을 바탕으로 답을 줍니다. 사용자의 기기는 절대 정보의 원천이 되지 않습니다.
구성 요소
- 대시보드 — 웹 기반 관리 화면입니다. 여기서 각 앱을 등록하고, 접근 등급(판매할 티어, 예:
pro,premium)을 만들고, 각 스토어에서 사용자가 구매하는 상품과 연결하고, 페이월을 구성합니다. API 키도 여기서 발급받습니다. - SDK — 앱에 추가하는 작은 라이브러리입니다(Android, iOS/tvOS, Roku, 또는 Web/React Native). 앱과 SubSovereign을 연결하는 통신 수단으로, 접근 권한 확인, 구매 검증, 페이월 조회, 동의 기록 등을 담당합니다.
- 서버 — 셀프 호스팅 방식의 SubSovereign 백엔드입니다. 각 스토어와 서버 측 영수증 검증을 수행하고, 이용 권한을 저장하며, 빠른 조회를 위해 캐시하고, 앱의 요청에 응답합니다.
- 스토어 — Apple StoreKit 2, Google Play Billing, Amazon IAP(Fire TV), Roku Pay, 그리고 Stripe(웹용)입니다. SubSovereign이 이 모두와 통신하므로, 앱은 SubSovereign 하나만 상대하면 됩니다.
사용자가 구독할 때 실제로 일어나는 일
- 사용자가 페이월에서 구독 버튼을 탭합니다. 앱은 스토어의 일반 결제 흐름(Google Play, StoreKit 등)을 통해 구매를 진행합니다 — SubSovereign이 이 과정을 대체하지는 않습니다.
- 스토어가 앱에 영수증(구매 토큰)을 전달합니다. 앱은 SDK를 통해 이 영수증을 SubSovereign에 전달합니다.
- SubSovereign이 서버 측 영수증 검증을 수행합니다 — 서버 간 통신으로 스토어와 직접 영수증을 확인합니다. 위조되거나 재사용된 영수증은 이 단계에서 거부됩니다.
- 영수증이 유효하면, SubSovereign은 사용자의 이용 권한을 기록합니다 — 새로 활성화된 접근 등급, 만료 시점, 갱신 여부를 저장합니다.
- 앱이 *"이 사용자는 어떤 권한을 가지고 있나요?"*라고 물으면, SubSovereign이 검증된 기록(속도를 위해 캐시됨)을 바탕으로 답하고, 앱은 해당 기능을 활성화합니다.
이후 매번 앱을 실행할 때는 5단계만 반복됩니다: 요청하고, 응답에 따라 기능을 활성화합니다. 갱신·취소·만료는 서버가 추적하므로 자동으로 반영됩니다.
셀프 호스팅과 데이터 주권이 중요한 이유
SubSovereign은 제3자의 클라우드가 아닌 여러분의 인프라(UK/EU 호스팅, 여러분의 데이터베이스)에서 실행됩니다. 그 의미는 다음과 같습니다:
- 사용자 데이터를 여러분이 소유합니다. 구매 내역, 이용 권한, 동의 기록은 여러분의 데이터베이스에 여러분의 통제 아래 저장됩니다 — 이를 통해 GDPR 준수가 벤더에게 맡겨야 하는 것이 아니라, 여러분이 직접 보장할 수 있는 것이 됩니다.
- 수익 배분 없음. 구독 수익의 일정 비율을 가져가는 호스팅 서비스와 달리, SubSovereign은 한 푼도 가져가지 않습니다 — 사용자가 결제한 금액의 100%가 여러분 몫입니다.
- 종속 없음. 여러분의 배포 환경이므로, 직접 살펴보고, 확장하고, 이전할 수 있습니다.
SubSovereign이 아닌 것
- 결제 처리 서비스가 아닙니다. 사용자는 여전히 앱 스토어(또는 웹의 경우 Stripe)를 통해 결제합니다. SubSovereign은 그 구매를 검증하고 추적합니다.
- 벗어날 수 없는 페이월 디자이너가 아닙니다. SubSovereign은 페이월의 콘텐츠(가격, 기능, 체험 기간)를 원격으로 제공하여 앱 업데이트 없이 변경할 수 있게 합니다 — 하지만 실제 화면은 여러분이 원하는 방식으로 직접 구성합니다.
시작할 준비가 됐나요?
**시작하기**에서 서버를 구성하고 첫 번째 앱을 등록한 뒤, 플랫폼별 가이드를 선택하세요: Android, iOS, Web / React Native, Roku, React, React Native, Flutter, 또는 Web Component.