핵심 개념
DevPay를 이해하기 위한 네 가지 개념은 보호, 라이선스, 결제, 신뢰 경계입니다.
1. 소프트웨어 보호
브라우저에 전달된 JavaScript/WASM은 사용자가 읽고 수정할 수 있습니다. 따라서 중요한 유료 기능을 보호하려면 서버가 권한을 확인하고 서버에서 핵심 동작을 수행하도록 설계해야 합니다.
- Track A: 이미 작성된 모듈을 분석하고 변환 가능성을 판단합니다.
- Track B: 신규 기능 요구사항에서 출발해 보안 명세와 에이전트 작업 지침을 생성합니다.
- AUTO: 현재 변환기가 지원하는 범위에서만 자동 적용합니다.
- AGENT: 코드 변경 대신 리팩터링 지침을 전달합니다.
- MANUAL_REVIEW: 불확실한 경우 자동 적용하지 않습니다.
2. 라이선스와 사용권
- License: 구매자에게 발급된 라이선스 키와 영속 기록입니다.
- Activation: 기기의 공개키를 연결합니다.
- Entitlement: 짧은 유효기간과 허용 기능이 포함된 서명된 사용권입니다.
- PoP: 기기 개인키로 요청이 해당 기기에서 만들어졌는지 증명합니다.
- Capability: 특정 기능을 한 번 실행하도록 허용하는 일회성 권한입니다.
- Revocation: 라이선스가 회수·중지되면 서버가 요청을 차단합니다.
PoP 기능은 현재 Worker에서 기본적으로 비활성화되어 있으며, 실제 배포 검증과 로컬 테스트를 구분해야 합니다.
3. 결제와 권한 발급
Mock 결제에서는 주문·결제·라이선스·원장 기록이 하나의 D1 배치로 처리됩니다. Toss 연동은 TEST 환경을 대상으로 하며, 환불·정산·대사 기능도 운영 검증이 아직 필요한 상태입니다.
4. 누구를 신뢰할까요?
구매자 브라우저는 신뢰할 수 없습니다. **판매자 자체 서버(BYOS)**는 판매자가 운영하므로 DevPay가 해당 서버의 모든 실행을 관측하거나 변조를 막을 수는 없습니다.
또한 보호 CLI와 MCP의 동적 분석은 임의 코드 실행 위험이 있습니다. 신뢰하지 못하는 저장소에는 사용하지 마세요.
보호 적용 계획은 결과물이 아니며, 실행한 테스트는 그 테스트 범위에 대해서만 증거를 제공합니다.