SubSovereign
All guides

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단계 — 판매 항목 정의

대시보드에서 계속해서, 사용자가 실제로 구매할 항목들을 설정합니다:

  1. 접근 등급 생성 (티어라고도 합니다) — 제품이 제공하는 접근 수준입니다. 예를 들어 propremium 같은 이름이며, 앱에서 이 이름을 기준으로 확인합니다.
  2. 각 접근 등급을 스토어 상품과 연결합니다. 각 스토어(App Store, Google Play, Amazon, Roku, Stripe)에서 구독 상품을 평소처럼 생성한 뒤, SubSovereign에 *"이 스토어 상품은 이 접근 등급을 부여한다"*고 알려주세요. 이 매핑이 구매를 이용 권한으로 전환하는 핵심입니다.
  3. 결제 화면 설계 — 헤드라인, 기능 목록, 가격, 무료 체험 기간을 설정합니다. 원격으로 제공되기 때문에, 앱 업데이트 없이도 나중에 변경할 수 있습니다.

4단계 — 앱에 SDK 추가

SDK를 앱에 추가하고 서버 주소를 가리키도록 설정하세요. 모든 플랫폼에서 방식은 동일합니다 — 해당 플랫폼 가이드를 따르세요:

각 플랫폼에서 apiKey, appId, 서버 baseUrl, 그리고 로그인한 사용자를 식별하는 **안정적인 userId**로 SDK를 한 번 설정합니다(어디서든 동일한 ID를 사용해야 여러 기기에서도 이용 권한이 사용자를 따라갑니다).

5단계 — 접근 권한 확인 및 출시

SDK 설정이 완료되면, 앱에서 두 가지를 수행합니다:

  • 앱 실행 시, 사용자의 이용 권한을 조회하고 그에 맞게 잠금을 해제합니다(Android 가이드에서는 checkEntitlements()로 설명하며, 모든 SDK에 동일한 기능이 있습니다).
  • 구매 후, 영수증을 SubSovereign에 전달하면 서버가 스토어에 서버 측 영수증 검증을 수행하고 접근 등급을 부여합니다 — 이후 다시 확인하여 잠금을 해제합니다.

이것으로 연동이 완성됩니다. 출시 전에 아래 체크리스트를 확인하세요:

  • 서버를 영국/EU 호스팅에 배포하고, 마이그레이션을 실행했으며, 앱에서 접근 가능한 상태.
  • 앱 생성 완료, API 키 안전하게 보관, 앱이 올바른 baseUrl을 가리키는 상태.
  • 접근 등급 정의 완료 및 지원하는 모든 스토어의 실제 상품과 연결 완료.
  • 앱 내 스토어 결제(Google Play / StoreKit / Amazon / Roku / Stripe) 정상 작동.
  • 앱 실행 시 이용 권한 확인, 구매 후 서버 측 영수증 검증 — 실제 기기에서 실제(샌드박스) 구매로 테스트 완료.
  • GDPR 동의가 수집되는 곳에서 기록 완료.

다음 단계