SubSovereign 시작하기
이 가이드는 아무것도 없는 상태에서 앱에 구독 확인 기능을 구현하는 것까지 단계별로 안내합니다. 개념을 먼저 파악하고 싶다면 SubSovereign 작동 방식을 먼저 읽어보세요. 이 가이드는 그 실전 편입니다.
총 다섯 단계입니다: 서버 구축 → 앱 생성 → 판매 항목 정의 → SDK 추가 → 접근 권한 확인. 첫 번째 단계에 반나절 정도를 잡아두세요. 나머지는 금방 끝납니다.
1단계 — 서버 구축
SubSovereign은 자체 호스팅 방식이므로, 먼저 자체 인프라에 백엔드를 실행해야 합니다. Node.js/TypeScript 기반의 서비스로, PostgreSQL(이용 권한, 이벤트, 동의 정보 저장)과 Redis(빠른 이용 권한 캐시)를 사용합니다.
cd backend
cp .env.example .env
# Fill in every value in .env — database URL, store credentials, secrets.
npm install
npm run migrate # creates the database tables
npm run build && npm start
관리형 배포를 원한다면 미리 준비된 Northflank 설정 파일(backend/northflank.yml)을 사용할 수 있습니다. Node + PostgreSQL + Redis를 실행할 수 있는 호스트라면 어디든 됩니다 — 중요한 것은 여러분의 인프라라는 점입니다. 서버가 올라오면 주소를 기록해두세요. 앱들이 통신할 때 사용하는 baseUrl이 됩니다(예: https://subs.yourdomain.com).
팁: 서버는 영국/EU 호스팅에 두세요. 데이터 주권과 GDPR 준수가 SubSovereign의 핵심입니다 — 배포 단계에서 그 이점을 포기하지 마세요.
2단계 — 대시보드에서 앱 생성
대시보드를 열고 앱을 생성하세요 — 출시하는 제품 하나당 앱 하나입니다(Android 앱과 iOS 앱을 같은 앱 레코드로 관리할 수도 있고, 별도로 분리할 수도 있습니다. 선택은 여러분의 몫입니다). 앱을 생성하면 다음 두 가지를 얻게 됩니다:
appId— 서버에서 이 앱을 식별하는 값,- API 키 — 앱이 SDK 호출을 인증할 때 사용하는 자격 증명.
🚩 API 키는 표시되는 즉시 복사해 안전한 곳에 보관하세요 — 단 한 번만 표시됩니다. 저희는 해시만 저장하므로 키를 다시 표시할 수 없으며, 이미 존재하는 앱에 대해 대체 키를 발급할 수 없습니다. 키를 잃어버렸다면 해당 앱을 보관 처리하고 새 앱을 만드세요.
3단계 — 판매 항목 정의
대시보드에서 계속해서, 사용자가 실제로 구매할 항목들을 설정합니다:
- 접근 등급 생성 (티어라고도 합니다) — 제품이 제공하는 접근 수준입니다. 예를 들어
pro나premium같은 이름이며, 앱에서 이 이름을 기준으로 확인합니다. - 각 접근 등급을 스토어 상품과 연결합니다. 각 스토어(App Store, Google Play, Amazon, Roku, Stripe)에서 구독 상품을 평소처럼 생성한 뒤, SubSovereign에 *"이 스토어 상품은 이 접근 등급을 부여한다"*고 알려주세요. 이 매핑이 구매를 이용 권한으로 전환하는 핵심입니다.
- 결제 화면 설계 — 헤드라인, 기능 목록, 가격, 무료 체험 기간을 설정합니다. 원격으로 제공되기 때문에, 앱 업데이트 없이도 나중에 변경할 수 있습니다.
4단계 — 앱에 SDK 추가
SDK를 앱에 추가하고 서버 주소를 가리키도록 설정하세요. 모든 플랫폼에서 방식은 동일합니다 — 해당 플랫폼 가이드를 따르세요:
- Android / Fire TV (Kotlin)
- iOS / tvOS (Swift)
- Web / React Native (JavaScript)
- Roku (BrightScript)
- React (React 웹 앱용 결제 화면 UI)
- React Native (데이터 클라이언트 + 네이티브 결제 화면)
- Flutter (Dart)
- Web Component (Vue / Svelte / Angular / 순수 HTML)
각 플랫폼에서 apiKey, appId, 서버 baseUrl, 그리고 로그인한 사용자를 식별하는 **안정적인 userId**로 SDK를 한 번 설정합니다(어디서든 동일한 ID를 사용해야 여러 기기에서도 이용 권한이 사용자를 따라갑니다).
5단계 — 접근 권한 확인 및 출시
SDK 설정이 완료되면, 앱에서 두 가지를 수행합니다:
- 앱 실행 시, 사용자의 이용 권한을 조회하고 그에 맞게 잠금을 해제합니다(Android 가이드에서는
checkEntitlements()로 설명하며, 모든 SDK에 동일한 기능이 있습니다). - 구매 후, 영수증을 SubSovereign에 전달하면 서버가 스토어에 서버 측 영수증 검증을 수행하고 접근 등급을 부여합니다 — 이후 다시 확인하여 잠금을 해제합니다.
이것으로 연동이 완성됩니다. 출시 전에 아래 체크리스트를 확인하세요:
- 서버를 영국/EU 호스팅에 배포하고, 마이그레이션을 실행했으며, 앱에서 접근 가능한 상태.
- 앱 생성 완료, API 키 안전하게 보관, 앱이 올바른
baseUrl을 가리키는 상태. - 접근 등급 정의 완료 및 지원하는 모든 스토어의 실제 상품과 연결 완료.
- 앱 내 스토어 결제(Google Play / StoreKit / Amazon / Roku / Stripe) 정상 작동.
- 앱 실행 시 이용 권한 확인, 구매 후 서버 측 영수증 검증 — 실제 기기에서 실제(샌드박스) 구매로 테스트 완료.
- GDPR 동의가 수집되는 곳에서 기록 완료.
다음 단계
- 모델 심층 이해: SubSovereign 작동 방식.
- 플랫폼 연동: 위의 SDK 가이드를 참고하세요.