피드로 돌아가기
How I reverse-engineered Playtomic's mobile payment API to build a padel court booking bot
Dev.toDev.to
Backend

mitmproxy를 통한 API 역설계로 18.7초 내 자동 예약 성공

How I reverse-engineered Playtomic's mobile payment API to build a padel court booking bot

Hadriel2026년 5월 16일5advanced

Context

Next.js Server Actions 도입으로 인한 Client-side 인터셉트 불가 상황 발생. 기존 웹 기반의 HTTP Replay 방식으로는 서버 내부에서 처리되는 결제 로직 분석 및 모방이 불가능한 제약 존재.

Technical Solution

  • mitmproxy를 활용한 iPhone 트래픽 캡처로 REST API 엔드포인트 직접 식별
  • Payment Intent 생성부터 Confirm까지 이어지는 4단계 순차적 결제 flow 설계
  • Binary Search 알고리즘 기반의 Dichotomic Scan을 통한 클럽별 예약 오픈 시간 정밀 탐색
  • Upstash Redis 및 BullMQ 기반의 분산 Worker 구조를 통한 저지연 요청 처리
  • Exponential Backoff 전략을 적용한 429 Rate Limit 대응 핸들러 구현
  • BullMQ의 Job ID 내 특수문자 제약 해결을 위한 sanitizeJobId 헬퍼 도입

- Next.js Server Actions 기반 서비스 분석 시 브라우저 툴 대신 모바일 프록시 도구 검토 - BullMQ 사용 시 Job ID의 특수문자(콜론 등) 포함 여부 확인 및 전처리 적용 - Rate Limit 대응 시 단순 Retry가 아닌 Exponential Backoff와 Retry Count 분리 설계 - 대기 시간이 긴 Worker 작업 시 Delayed Re-enqueue 방식을 통해 Concurrency 슬롯 낭비 방지

원문 읽기