
AI KOREA 24 무료 강의 05 · 초보자용 · 준비물 0원
2026-10-02~03 샌드박스 E2E 완료. 테스트 결제로 끝까지 검증한 기록입니다.
이 강의에서 배우는 것
- Paddle 샌드박스에서 상품·가격을 만듭니다.
- 체크아웃을 연동하고 테스트 결제를 돌립니다.
- 웹훅으로 결제 완료를 받아 서버에 반영합니다.
준비물
- Paddle 계정 (샌드박스 모드, 무료)
- 테스트용 웹사이트 1개 (로컬호스트도 가능)
- 비용 0원 — 샌드박스에서는 실제 돈이 오가지 않습니다.
왜 이걸 배우나요
"결제 붙이기"는 서비스의 성인식입니다. 그런데 처음부터 실결제로 테스트할 수는 없습니다. Paddle의 샌드박스는 가짜 돈으로 진짜 흐름 전체를 돌려볼 수 있는 환경입니다. 이걸 끝까지 돌려보지 않고 라이브로 가면, 첫 실결제에서 터집니다.
1. 샌드박스 이해하기
Paddle에는 두 개의 세계가 있습니다.
| 환경 | 용도 | 돈 |
|---|---|---|
| Sandbox | 개발·테스트 | 가짜 (테스트 카드) |
| Live | 실제 서비스 | 진짜 |
환경을 가르는 건 환경변수 하나입니다. PADDLE_ENVIRONMENT=sandbox. 이 값이 코드에 박혀 있으면 실수로 실결제가 나갈 일이 없습니다. 실전에서도 샌드박스 검증을 마칠 때까지 이 값을 유지했습니다.
실습: Paddle 대시보드에서 Sandbox 모드로 전환하고, 테스트 상품 하나를 만들어보세요. 이름은 "테스트 상품", 가격은 1,000원으로 합니다.
2. 체크아웃 연동
상품에 가격(Price)을 만들면 결제 링크 또는 임베드 체크아웃을 붙일 수 있습니다. 흐름은 단순합니다.
사용자가 "구매" 클릭 → Paddle 체크아웃 열림 → 테스트 카드로 결제 → 성공테스트 카드 번호는 Paddle 문서에 공개된 번호를 씁니다 (예: 4242 4242 4242 4242). 진짜 카드 번호를 쓰면 안 됩니다.
중요한 실전 교훈: 가격 ID가 비어 있는 상품의 구매 버튼을 노출하지 마세요. 실전에서 Agency 플랜의 price ID가 비어 있어서, 클릭하면 결제가 실패하는 버튼이 될 뻔했습니다. 결국 해당 플랜 카드를 화면에서 숨기는 것으로 막았습니다. "결제될 수 없는 버튼은 보여주지 않는다"가 원칙입니다.
실습: 테스트 상품의 체크아웃을 열고 테스트 카드로 결제까지 해보세요.
3. 웹훅 — "결제됐어요"를 서버가 듣는 법
체크아웃에서 결제가 끝나면, Paddle이 여러분 서버의 웹훅 URL로 "결제 완료" 신호를 보냅니다. 이 신호를 받아서 DB에 "이 사용자 유료 전환"을 기록해야 결제가 완성됩니다.
웹훅 처리의 실전 체크리스트:
- [ ] 서명 검증: 신호가 진짜 Paddle에서 온 건지 서명으로 확인합니다. 이걸 빼먹으면 누구나 "결제됐어요"라고 속일 수 있습니다.
- [ ] 중복 방지: 같은 결제 신호가 두 번 올 수 있습니다. 거래 ID(
paddle_transaction_id)를 저장해두고 중복은 무시합니다. 실전에서는 이 처리가 빠져 있어 잔존 리스크로 기록됐습니다. - [ ] 이벤트 종류 구분: 결제 성공뿐 아니라
expired(만료),updated(변경) 같은 이벤트도 옵니다. 테스트해 보지 않은 이벤트는 라이브에서 처음 만납니다.
4. E2E 시나리오 — 끝까지 돌려보기
2026-10-02~03에 실제로 돌린 E2E(End-to-End) 시나리오입니다.
- 상품 페이지 접속 → 구매 클릭
- 체크아웃에서 테스트 카드 결제
- 웹훅 수신 → DB에 유료 상태 기록 확인
- 유료 전용 페이지 접근 가능 확인
이 4단계를 자동이 아니라 손으로 한 번은 끝까지 해봅니다. 손으로 해보면서 "아, 여기서 막히네"를 찾는 게 목적입니다.
흔한 실수 Top 3
- sandbox/live 키 혼용 — 테스트 키로 실결제창을 열거나 그 반대. 환경변수로 분리합니다.
- 웹훅 서명 미검증 — 가짜 결제 신호에 유료를 열어주는 최악의 경우.
- 결제 안 되는 버튼 노출 — price ID가 비어 있으면 버튼을 숨깁니다.
정리
- 샌드박스에서 가짜 돈으로 전체 흐름을 검증합니다
PADDLE_ENVIRONMENT로 환경 분리, 결제 불가 버튼은 노출 금지- 웹훅은 서명 검증 + 거래 ID 중복 방지가 생명
- E2E는 손으로 한 번 끝까지 돌려봅니다
다음 강의에서는 서비스의 집, Cloudflare 무료 티어로 D1·Workers·Pages를 운영합니다. 월 0원으로 버티는 실측 기록 그대로입니다.
---
*AI KOREA 24 무료 강의 · Operated by 스타일팩토리9*


