← 목록
기타 2026-05-27 6KB 읽기 7분

pay.crowny.org v3.0 — 잔여작업 + 다른 세션 서비스 선언 완성

날짜: 2026-05-27 도메인: pay.crowny.org (포트 9866, 가동 중) 선행: 2026-05-27 명세호환+체크아웃UI+Webhook 구현완성

개요

v2.0 위에 5개 트랙 동시 진행으로 완성:

  1. 서브 에이전트 권한 문제 진단/해결.claude/settings.json 권한 부여 → 4 에이전트 모두 정상 작동
  2. 다른 세션을 위한 서비스 선언 → 통합 도구 + 게시판
  3. 잔여작업 4종 병렬 처리 — LaunchAgent, HMAC 표준, 포네/PG 어댑터, 클라이언트 라이브러리

① 서브 에이전트 권한 문제 해결

진단: 메인 세션의 ~/.claude/settings.local.json (3,264 allow 패턴)은 메인 프로세스에만 적용. 서브 에이전트는 별도 권한 컨텍스트로 시작 → 기본값 deny.

해결: /Users/ef/crowny-pay/.claude/settings.json 작성 → Write/Edit/Read/Bash 권한 명시.

검증: 4 에이전트 동시 발사 → 모두 즉시 작동 (이전 4 에이전트 100% 실패 → 이번 100% 성공).

메모리 등록: feedback_subagent_permissions.md (다음 새 프로젝트부터 자동 적용).

② 다른 세션용 서비스 선언

~/.claude/knowledge/PAY_SERVICE.md (9.3KB)

  • 다른 세션이 세션 시작 시 자동 로드하는 게시판
  • 취지, 3단계 통합 가이드, 도구 일람, FAQ 5개
  • 서비스별 권장 트랙 매트릭스 (academy/market/dex/edu/church/play/messenger/...)
  • 환경변수 / 5트랙 수수료 / 적용 상태 매트릭스

/Users/ef/crowny-pay/adapters/pay-client.{한선,js} (재사용 라이브러리)

  • 결제세션생성() / 결제상태조회() / 결제환불() / 결제수단조회() / Webhook서명검증()
  • JS 버전 동일 시그니처 + Express mountWebhookHandler 헬퍼
  • 외부 의존성 0 (Node http/crypto만)
  • 학습DB 등록 — 다른 세션에서 crownycode-learn.sh search 가능

/Users/ef/crowny-pay/services/services.json (서비스 메타데이터)

  • 7 트랙 + 19 엔드포인트 명세
  • 다른 세션이 자동 발견 가능

/Users/ef/crowny-pay/INTEGRATION.md (195줄)

  • 30초 / 5분 / 30분 통합 가이드
  • 각 서비스별 권장 트랙

③ 잔여작업 4종

LaunchAgent + 운영 스크립트

  • com.crowny.pay.plist (KeepAlive + Throttle + Log)
  • scripts/{start,stop,restart,status,install-launchagent,uninstall-launchagent}.sh
  • start.sh 검증: PID 22783, 메모리 49.7MB, /health 200, Webhook 큐 0건
  • .env.example, .gitignore, logs/.gitkeep

HMAC 표준 검증 + 정밀 구현

  • 발견: 한선코드.한선 HMAC해시는 비표준 (hex 문자열 concat). server.js crypto와 결과 불일치.
  • 신규: libs/HMAC표준.한선 (RFC 2104) — _hex에서바이너리 + binary-safe pad + STR_CAT
  • 운영 권고: Webhook 검증 = 표준 구현, QR 페이로드 = 자체 간이 (기존 호환).
  • 문서: docs/HMAC_검증.md

포네 체인 + PG 모드 정밀화

  • adapters/포네어댑터.{한선,js} — chain.crowny.org RPC (mock/live 스위치)
  • adapters/PG어댑터.{한선,js} — KCP/NICE/Stripe/카카오/네이버/토스/페이코 (mock/live)
  • .env.example 확장 — CHAIN_MODE, PG_MODE, 7개 PG API 키
  • 문서: docs/포네_PG_모드.md (376줄)

포네어댑터 컴파일 함정 해소 (메인 세션 직접)

3개 알려진 함정 발견 + 수정:
  • 메서드 예약어 → RPC메서드
  • 다중단어 인라인 주석 (;) → // 로 변경
  • 숫자 시작 함수명 16진수값진수16값
  • 글자(s, i, n) 3-인자 → 2-인자 + 또는 falsy fallback → 만약 분기

최종 집계

한선씨 컴파일       16/16 통과 (libs 13 + adapters 3, 100%)
server.한선 정본    41,665 큐브 / 1.16MB toau (서비스 선언 + 잔여작업 모두 통합)
명세 라우트         /health · /api/methods · /api/checkout · /api/checkout/:id · 
                   /api/checkout/:id/pay · /api/refund — 모두 200
적용 사례          academy.crowny.org 운영 / 9개 도메인 통합 권장
다른 세션 통합 도구  pay-client.{한선,js} + services.json + INTEGRATION.md + PAY_SERVICE.md
운영 인프라         LaunchAgent + 6개 셸 스크립트 + .env.example + .gitignore
학습DB 등록        7개 신규 한선씨 패턴 등록
문서               9개 (가맹점/API/SDK/영업/도입사례/포네PG/HMAC/명세/아키텍처)
HMAC 표준          RFC 2104 한선씨 구현 + 운영 권고 명세

다른 세션 적용 시나리오 (게시판 → 실 통합)

bash# 1. 게시판 자동 로드 (세션 시작 시)
cat ~/.claude/knowledge/PAY_SERVICE.md

# 2. 클라이언트 임포트 (Node.js)
const pay = require('/Users/ef/crowny-pay/adapters/pay-client.js');
const s = await pay.createCheckout({amount: 50000, returnUrl: '...'});
res.redirect(s.checkoutUrl);

# 3. 클라이언트 임포트 (한선씨)
가져오기 "pay-client.한선"
변수 세션 = 결제세션생성(50000, "KRW", "주문", "https://my.crowny.org/done", "user_1")

# 4. Webhook 핸들러 (Node.js Express)
pay.mountWebhookHandler(app, '/api/payment-webhook', secret, async (event) => {
  // 자동 검증 + 파싱 후 핸들러 호출
});

잔여 (다음 단계)

  1. PG 실 연동 — KCP/NICE/Stripe HTTPS API 호출 (현재 stub). 운영 전환 시.
  2. 포네 체인 직결 — chain.crowny.org RPC 실 통신 (현재 mock).
  3. PCT 실 승격 — 81 특허 출원 (가치점수 평균 90.3).
  4. LaunchAgent 설치bash scripts/install-launchagent.sh (사용자 명시 시).
  5. 다른 도메인 적용 추진 — market/dex/edu/church/play 순차.

docs.crowny.org

본 문서: /Users/ef/CrownyDoc/projects/2026-05-27-pay-잔여작업-서비스선언-완성.md 선행: 2026-05-27-pay-crowny-org-구현완성.md