어푸푸

코레일 자동 예약 매크로 제작기 #5 본문

잡동사니/자동화

코레일 자동 예약 매크로 제작기 #5

예수님부처 2018. 4. 23. 16:08

안녕하세요? 오랜만에 뵙네요. 요즘 바빠서 포스트를 작성할 시간이 없었습니다.

이번 포스트는 코레일 자동 예약 매크로 제작기의 마지막 포스트가 되겠습니다. 기존에 말씀드렸던대로 작성한 코드는 공개드릴 수가 없을 것 같습니다. 그럼에도 불구하고, 기존에 공개된 싸제(저렴한 표현 죄송) 코레일 API가 많이 있으니, 기본적인 프로그램을 짜실 수 있는 능력이 있으신 분들이라면 별 어려움 없이 금방 작성하실 거라고 생각해요.

사실 코레일 자동 예약 프로그램 자체는 올해 3월 20일 경에 완성되었습니다. 그 이후로 프로그램이 실제로 작동하는지 검증 및 사용을 많이 해봤는데요, 아주 잘 작동하는 것을 확인하였습니다. 특히 금요일 저녁 대전-서울 구간의 경우 KTX 표가 항상 매진인데, 해당 프로그램을 활용해보니 일단 취소표가 나오기만 하면 잘 잡는 모습을 보였습니다. 얼마나 뿌듯하고 재미있었는지 서울로 가는 격주를 매일매일 기다릴 지경이었습니다.

그리하여 이번 마지막 포스트에서는 실제로 작성된 자동 예약 매크로에 대해서 보여드리고, 매크로 성능에 대해서 검증을 어떻게 했는지에 대해서 간단하게 써보려고 합니다.

사람이 가장 집에 가고 싶어진다는 금요일 오후 6시 39분...(근거 없음) 대전에서 서울로 올라가기 위해서 오후 6시 57분 KTX를 타고 싶습니다. 아래 그림은 코레일톡으로 본 KTX 현황입니다. 전부 매진이라는 글자가 싸늘하게 날아와 심장에 꽂힙니다. 보통의 경우라면 지금부터 뒤로 버튼과 검색 버튼을 손가락에 땀나도록 누르게 됩니다. 하지만 걱정마세요. 매크로는 손보다 빠르니까요. 눈보다 빠른 손, 그리고 손보다 빠른 매크로.. 저는 눈 보다 빠른 매크로를 가지고 있는 셈입니다.
(눈<손<매크로)

<금요일 오후 시간대에 KTX가 전부 매진된 모습>                <하지만 걱정하지 마라. 매크로는 손보다 빠르니까..>

매크로의 입력값은 아래와 같이 출발하는 도시, 도착하는 도시, 원하는 시간입니다. 이 모든 입력은 텔레그램을 이용하여 이루어집니다. 다만 이와 같은 봇은 누구에게나 공개가 되있으므로 일종의 보안을 거칠 필요가 있습니다. 이에 따라 저는 보안 문자열을 보내고, 이를 확인하는 과정을 거쳐서 제가 아닌 다른 사람이 봇을 통하여 예약을 하지 못하게 하였습니다. 시간을 입력하고 나면 해당 시간 이후의 기차 스케쥴 10개가 전송됩니다. 여기에서 원하는 기차 스케쥴을 입력하면 예약 절차에 들어갑니다. 이후 예약이 성공하게 되면 예약이 완료되었다고 메세지가 오게됩니다. 이 기차표의 경우 예약하는데에 7분 걸렸습니다. 지금까지의 경험을 토대로 보았을 때 성공적으로 예약이 완료되는데에 걸리는 시간은 1분에서부터 15분까지 아주 다양했습니다. 하지만 시간이 어느정도가 걸리던간에 지금까지는 매번 예약에 성공하였습니다.

<텔레그램 봇을 통한 매크로 프로그램 입력 처리>

<예약이 완료되면 예약 완료 메세지가 발송된다>

<예약이 완료된 후 코레일 톡에서 확인한 모습>

위 그림에서 보실 수 있다시피 예약이 일단 완료되면 코레일 톡에서 결제 절차를 진행할 수 있습니다. 다만, 예약이 완료된 경우 장바구니에서 보이는 것이 아니고, 예매 승차권을 확인하는 메뉴에서 보이게 됩니다. 이제 남은 것을 결제를 하고 룰루랄라 집에 가는 것 뿐입니다. 참고로 이 날은 자동 예약 매크로를 처음 사용해보았던 날인데, 아주 기분 좋은 잠자리를 보냈습니다.

예약 매크로가 얼마나 강력한 툴인지 확인을 했으나, 궁금증이 들었습니다. 예약 매크로를 돌려보니 '표를 조회하고, 표가 있다면 예약을 하는' 일련의 과정이 1초에 약 4번 이루어졌습니다. 빠른 속도지만, 코레일 서버에는 영향을 거의 주지 않을 것이 자명했습니다. 하지만 오히려 그렇기 때문에 의문점이 들었습니다.

'과연 취소 표가 나오기만 하면 잡을 수 있는 것인가?'

이에 따라 아주 표 예약이 아주 치열한 시간대에 해당 매크로를 써서 자리를 확보 하고, 동일한 표에 대해서 매크로를 다시 돌렸습니다. 그리고 표를 취소해보니.. 바로 잡습니다. 사람이 따라갈 수 있는 속도가 아닙니다. 사람은 표가 있다면 '그것을 확인하고 예매 버튼을 누르고 또 한 번 확인 버튼을 눌러야' 하기 때문에 매크로와의 경쟁에서 절대로 따라갈 수 없다는 확신이 생겼습니다. 즉, 취소표가 나오기만 한다면 매크로는 우선순위 1순위로 표를 예약할 수 있는 것입니다.

그리하여.. 글쓴이가 업무의 자동화가 이렇게나 편리한 것임을 새삼 다시 느낀 아름다운 이야기가 되겠습니다.

그럼 이만.. 총총