# 캐치테이블 예약 스나이핑 가이드 ## 이 기능으로 할 수 있는 일 - 로그인된 Chrome 세션을 재사용해 캐치테이블 예약 페이지 진입 - 원하는 식당의 취소 슬롯/빈자리 폴링 - 여러 식당을 순차 감시하다가 먼저 열린 슬롯에 예약 시도 - 예약 오픈 시간에 맞춘 오픈런 시도 - dry-run 모드로 빈자리 발견까지만 알리고 최종 예약은 사용자에게 넘기기 ## 먼저 알아둘 점 - 이 기능은 **Chrome MCP + 로그인된 캐치테이블 세션**이 있어야만 동작한다. - 카카오/네이버 로그인 자동화는 하지 않는다. - 결제 정보 자동 입력은 하지 않는다. - 선결제 매장은 결제 단계에서 반드시 사용자가 직접 확인해야 한다. - 서버 부하를 줄이기 위해 폴링 간격은 **30초 이상**으로 유지한다. ## 입력 형태 다음 정보를 자연어에서 추출해 사용한다. - 식당명 또는 캐치테이블 URL - 날짜 또는 날짜 범위 - 인원 수 - 시간대(선택) - dry-run 여부 - 인원 유연 매칭 여부 - 예약 오픈 시각(오픈런 모드일 때) 예시: - `온지음 5월 토요일 저녁 2인 빈자리 나오면 예약해줘` - `온지음, 밍글스, 라연 중 5월 주말 2인 아무데나 먼저 뜨는 거 잡아줘` - `라연 5월 예약 오픈이 4월 30일 오전 10시야, 그때 맞춰 2인 잡아줘` - `밍글스 빈자리 뜨면 예약은 내가 할게, dry-run으로` - `https://app.catchtable.co.kr/ct/shop/mingles 토요일 4명 자동예약` ## 동작 흐름 1. 캐치테이블 홈 또는 식당 페이지에 접속한다. 2. 로그인 상태를 확인한다. 3. 오픈런 모드면 지정 시각까지 대기 후 즉시 예약을 시도한다. 4. 일반 스나이핑 모드면 30초 간격으로 새로고침/재조회하며 슬롯을 감시한다. 5. 슬롯이 열리면 날짜/인원/시간을 선택하고 예약 흐름으로 진입한다. 6. 무료 예약이면 최종 예약 버튼까지 진행하고, 선결제 매장이면 결제 직전 단계에서 사용자 확인을 요구한다. ## 멀티 타겟 / 인원 유연 모드 ### 멀티 타겟 - 여러 식당을 순차적으로 감시한다. - 한 곳에서 예약 가능한 슬롯을 발견하면 나머지 감시는 즉시 중단한다. ### 인원 유연 매칭 - 예를 들어 2인 자리가 없을 때 4인 자리를 대안으로 확인할 수 있다. - 대안 인원 슬롯을 발견하면 사용자에게 확인을 받고 다음 단계로 진행한다. ## dry-run 모드 `알림만`, `dry-run` 같은 표현이 있으면 예약 완료 대신 다음까지만 수행한다. - 빈자리 발견 - 식당/날짜/시간/인원 요약 - 사용자가 직접 예약할 수 있도록 알림 ## 제한사항 - 로그인 자동화 없음 - 카드/간편결제 정보 자동 입력 없음 - 캐치테이블 외 예약 플랫폼 미지원 - UI 변경 시 selector/흐름이 깨질 수 있음 ## 검증 메모 2026-04-22 기준 로컬 검증에서 다음을 확인했다. - 캐치테이블 식당 페이지 진입 - 예약 가능한 식당에서 날짜/인원/시간 선택 - 방문 확인 단계 진입 - 결제 방식 선택 단계 진입 다만 최종 예약 완료는 **로그인된 캐치테이블 세션이 없는 Chrome 프로필**에서는 검증할 수 없었다. 이 기능의 최종 성공 여부는 로그인된 사용자 세션과 실시간 좌석 상황에 직접 의존한다. ## 원칙 - 사용자의 로그인 자격 증명을 새 env var나 repo 문서에 추가하지 않는다. - 사용자가 이미 로그인해 둔 브라우저 세션만 재사용한다. - 결제나 취소 수수료가 얽힌 단계에서는 사용자 확인을 우선한다.