피드로 돌아가기
Why I Built My Own Licensing SDK Instead of Using Paddle
Dev.toDev.to
Security

Ed25519 서명 기반 Offline Licensing 구조로 벤더 종속성 제거

Why I Built My Own Licensing SDK Instead of Using Paddle

Nico2026년 6월 27일6intermediate

Context

Stripe 기반 결제 시스템 도입 후 라이선스 검증과 기기 활성화 관리 체계의 부재라는 병목 지점 발생. 기존 Merchant-of-Record 플랫폼(Paddle, Gumroad 등)은 온라인 전용 API 검증 방식에 의존하여 오프라인 환경의 Desktop App 실행 불가 및 벤더 종속성이라는 구조적 한계 노출.

Technical Solution

  • Ed25519 기반의 Cryptographically Signed License Lease 도입을 통한 로컬 검증 아키텍처 설계
  • 서버 통신 없이 Public Key만으로 라이선스 진위 여부를 즉시 판단하는 Offline Verification 로직 구현
  • Stripe Webhook과 연동하여 환불 시 자동으로 라이선스를 회수하는 Automatic Revocation 프로세스 구축
  • 단일 키의 무분별한 공유를 방지하기 위한 Device Activation Limits 제어 계층 추가
  • 결제(Stripe)와 라이선스 관리(Keylight)를 분리하여 특정 벤더의 서비스 중단 시에도 고객 데이터와 라이선스 유효성을 유지하는 디커플링 전략 채택

- Desktop App 설계 시 네트워크 오프라인 상태의 라이선스 검증 시나리오 정의 - 벤더 제공 SDK 대신 공개키 암호화 기반의 Self-verifiable Token 도입 검토 - 결제 처리(Payment)와 권한 부여(Licensing) 레이어를 물리적으로 분리하여 마이그레이션 리스크 분산 - 환불 및 구독 취소 시의 상태 동기화를 위한 Webhook 기반 자동화 파이프라인 설계

원문 읽기