ChatGPT로 SRT 예매부터 결제까지 자동화해본 후기: 어떻게든 되게만 해보자라고 시작했는데, 실제로 예매·결제까지 해내버리고 말았어요!!

소개

이번에 시도한 것은 ChatGPT를 활용해 SRT 예매부터 결제까지 이어지는 흐름을 실제로 자동화해보는 것이었습니다.

단순히 “기차표를 찾는 정도”가 아니라,
- 예매 가능한 시간대를 조회하고
- 원하는 열차를 골라 예약하고
- 결제 단계까지 연결해

실제로 반복적인 예매 업무를 줄일 수 있는지 확인하고 싶었습니다. 그리고 스터디장님이 본인이 만드신걸 보여주셨는데, 아 이거 쩐다;;; 하고 생각했기때문에 시도해 보게 되었습니다.

처음에는 조회만 빨라져도 충분하다고 생각했지만,
막상 해보니 핵심은 조회보다도 예약과 결제 단계에서 막히지 않도록 구조를 잘 만드는 것이었다고 생각합니다.

그래서 일단 스터디장님이 공유해주신

여러 사람들의 사진이 포함된 문자 메시지


이 스킬셋의 설치부터 시작해 보았습니다. 간단합니다

"해줘"

녹색 배경에 흰색 텍스트가 있음
한국어 문자 메시지의 스크린샷


---

진행 방법

이번 작업에서는 다음 흐름으로 진행했습니다.

1. SRT/KTX 예매 관련 스킬 설치
2. 로컬 시크릿 파일 구성
3. SRT 로그인 상태 확인
4. 예매 가능한 시간대 조회
5. 예약 실행, 결제 대리 요청, AI의 단호한 거절
6. 결제 단계 오류 확인 - 격한 실랑이
7. 입력 형식 수정 후 재시도
8. 최종 결제 완료

핵심 도구는 다음이었습니다.

- ChatGPT+헤르메스 에이전트: 커뮤니케이션, 전체 흐름 설계, 문제 분석, 오류 해석
- SRT 라이브러리: SRT 예약 및 결제
- sops + age: 로컬 시크릿 암호화
- 로컬 설정 파일: 계정 정보와 결제 정보 관리
- 스크린샷 캡처: 과정 기록 및 공유용 증빙

특히 중요한 건, 단순히 “되는지”만 보는 게 아니라
어떤 단계에서 막히는지, 왜 막히는지, 어떻게 다시 이어갈지를 계속 확인한 점이었습니다.

한국어로 된 단어가 있는 한국어 페이지


AI는 단호했습니다. 볼드까지 해가며 거절의 의사를 반복적으로 밝혀왔습니다.
어찌보면 저는 괜찮다 하고 AI가 제 주머니 보안까지 걱정해주는걸 보며, 한편으로 안심도 되었습니다. 그렇게 얼르고 달래고


한국어로 된 문자 메시지의 스크린샷

이런 저런걸 다 시도해 보다 막혀서 하다가 스터디장님에게 SOS를 쳤고.

한국어 텍스트가 포함된 Google 스프레드시트의 스크린샷

본인의 세팅방법을 공유해 주셔서 그대로 따라만 해 보았더니

한국어 문자 메시지 스크린샷


따라...


사용한 프롬프트 전문

아래는 실제로 흐름을 정리할 때 사용한 방식입니다.

SRT 예매를 위한 환경을 구성하고, 이번 주말 부산행 예매 가능 시간을 먼저 조회해줘.
예약 가능 열차가 있으면 후보를 요약하고, 내가 확인하면 예약 단계로 넘어가줘.
결제 단계에서는 금액과 진행 여부를 먼저 다시 확인하고, 오류가 나면 원인을 분석해서 재시도해줘.
개인정보와 카드정보는 로컬 시크릿에만 저장하고, 대화에는 노출하지 마.



예약이 이미 만들어졌으면 동일한 조건으로 다시 조회하고,
이전에 예약된 건이 만료되었거나 결제가 안 됐으면 같은 날짜/시간으로 새로 예약을 시도해줘.
결제 오류가 나면 입력 형식을 먼저 점검하고, 함수 내부 동작 기준으로 문제를 분석해줘.



결제 직전에는 반드시 금액과 예약 내용을 요약해서 보여주고,
승인 후에만 결제를 진행해줘.



활용한 코드 / 설정 예시

1.아래는 시크릿을 로컬에 두고 복호화해서 사용하는 흐름입니다. 사실 저는 혼자 독학 그것도 클로드랑 대화해가며 하나둘 몸으로 배워온 AI 유저라 아래 명령어들이 뭐하라는건지도 모릅니다. 그건 4주차때에 좀더 자세하게 설명할 수 있기를 바랍니다. 하지만 이런 길을 미리 가본 분으로 부터 받은 방법론 하나를 AI에게 줌으로서 AI가 아래와 같은 "외국어"를 스스로 만들어서 또 다른 프로그램에 적용시킨다는 프로세스는, 조금 멀리 떨어져서 보고 있자면 참 소름돋게 효율적이네요.

SOPS_AGE_KEY_FILE="$HOME/.config/k-skill/age/keys.txt" sops -d "$HOME/.config/k-skill/secrets.env"



2.SRT 결제 함수는 입력 형식이 중요했습니다. SRT에서 입력되는 방식 특히 저 Validation Number가 생일일거라고 저는 생각도 못하고 계속 CVC 번호넣고 왜 안되나 하고 있었네요.

srt.pay_with_card(
    reservation,
    number,            # 카드번호
    password,          # 카드 비밀번호 앞 2자리
    validation_number, # 개인카드: 생년월일 6자리
    expire_date,       # YYMM 형식
    installment=0,
    card_type='J'
)



다시 말씀드리지만 특히 expire_date 형식과 validation_number의 의미를 정확히 맞추는 것이 핵심이었습니다.

---

결과와 배운 점
배운 점과 나만의 꿀팁을 알려주세요.

이번 작업을 하면서 가장 크게 느낀 점은,
자동화는 속도보다 “안 막히게 이어지는 구조”가 더 중요하다는 점이었습니다.

단순히 예매 조회만 되는 수준에서는 큰 의미가 없었습니다.
실제로는 아래 순서가 다 연결되어야 했습니다.

- 로그인
- 조회
- 예약
- 결제
- 결과 확인

이 중 하나라도 형식이 맞지 않으면 전체 흐름이 끊겼습니다.

시행착오
진행 중 가장 어려웠던 부분은 결제였습니다.

- 카드 유효기간 형식이 예상과 달랐고
- 결제 함수가 요구하는 값의 의미를 다시 확인해야 했고
- 브라우저 자동화는 환경 문제로 실패했습니다

그래서 무작정 반복하기보다,
함수 내부 입력값을 확인하고, 형식을 맞추는 방식으로 문제를 해결했습니다.
그것도 이미 타인이 같은 길을 먼저 가보고 학습하게 된 것을 구전으로 전해받고
그 내용을 다른 AI에게 던진것만으로 해결되었다는 것이 참 놀라웠습니다
스터디의 목적은 이런게 아닐까요?

꿀팁
이 작업을 해보고 나니 제가 느낀 팁은 이렇습니다.

1. 먼저 조회부터 확인할 것
- 예매 전에 후보를 정리하면 훨씬 덜 흔들립니다. (토큰값이 아껴집니다...;;)

2. 결제 직전에는 반드시 한 번 더 요약할 것. (항상 관리 감독은 해야한다)
- 금액, 시간, 좌석, 예약번호를 다시 확인하는 게 중요합니다.

3. 오류가 나면 감으로 다시 누르지 말고 입력 형식을 확인할 것!!!!!
- 특히 카드 결제는 형식 차이로 막히는 경우가 많습니다.
3-1 막히면 잘아는 사람에게 꼭 물어보자

4. 민감정보는 로컬 시크릿으로만 관리할 것
- 대화창에 남기지 않는 것이 안전합니다. 그리고 이래야 AI가 결제를 대신 해줍니다

결과
최종적으로는
- SRT 예약 생성
- 결제 완료
- 예약 상태 확인

까지 이어졌습니다.

즉, 단순한 테스트가 아니라
실제로 예매와 결제를 끝까지 처리한 사례가 됐습니다.

도움이 필요한 부분
이런 흐름은 한 번 만들어두면 재사용성이 좋습니다.
다만 다음 단계에서는:
- 더 안정적인 자동화 구조
- 실패 시 재시도 로직
- 다른 예매 서비스(온라인 여행사를 통한)로의 확장

같은 부분을 보완, 추가하는 것이 가능하도록 더 다듬어 보려 합니다.

앞으로의 계획

- 일상의 전반적인 업무를 대신 해주는 버틀러를 하나 잘 키워보는 것을 목표로 더 공부해보려합니다.


도움
-스터디 22기 반려 에이전트 만들기 스터디장이신 Doctor 박승현님께 감사의 말씀을 드립니다.

6
4개의 답글
밀어주고 끌어주는

온·오프라인 AI 스터디

AI로 어디까지 할 수 있는지
직접 확인하실 분만 신청하세요.