Home 놀이터 예약을 좀 더 간편하게~
Post
Cancel

놀이터 예약을 좀 더 간편하게~

자주이용하는 공공놀이터의 예약시스템

와이프가 언제부터인가 공공기관의 놀이터 정보를 알아오게 되어 2주에 한번씩 예약하고 있다. 생각보다 시설이 괜찮고, 와이프의 채팅방에 친해진 친구들과 함께 가는 일도 생겨 계획을 하고 놀이터를 가게 되었다. 하지만 2주마다 아침 11시에 열리는 창이 전쟁이다…특히 주말은 30초~1분컷으로 예약이 종료된다.

나는 뭐 대부분 성공하긴 했지만 와이프의 경우에는 간혹 실패하는 경우가 있어 계획을 잡고 같이 움직이기란 여간쉽지않다. 친해진 애들도 많아 지고 하다보니 이거 예약을 간편하게 해야 같이 갈 수 있겠다라는 생각이 들어, 프로그램을 만들어보았다.

개발회고

주피터노트북을 이용해 파이썬으로 개발을 진행했다. 간단한 모듈을 만드는데 이것만한 것이 없는 것 같다. 해당 사이트는 SNS를 통한 OAuth방식을 이용한 로그인 처리를 하고 있었다. 아무 생각없이 request의 network를 분석하여 크롤링을 하는 방식처럼 구현을 시작했다.

여기서 문제가 해당 로그인은 SOURCE -> SNS Provider -> Relay(LiveRe) -> SOURCE 의 경로로 진행되는데 처음 생각은 단순히 SNS 로그인에 대한 Session을 유지하면 처리되지 않을까 하고 구현을 했다. 하지만 중계서버에서 redirect 형식으로 로그인을 처리하는데 이게 호스트상에서 call을 하지 않으면 키가 발행이 안되는지, 계속 난관에 부딪혔다. 소스서버에 대한 로그인 코드만 받으면 되는 거였는데, 중계서버에서 SNS Provider에게 OAuth를 인증받고, 이후에 중계서버에서 해당 소스에 대한 로그인 키를 발행하는 식으로 업무가 진행되는거 같았다.

session을 유지한채로 진행을 했지만 차도가 없어서, 결국 selenium을 이용해 webdriver를 직접 호출하여 처리하도록 했다. 물론 등록업무는 코딩으로 처리가 되었지만, webdriver를 호출 하는 자체가 만족스럽지 않은 결과다. 결론은 현재 해당 프로그램은 정상적으로 작동을 하나 webdriver없이 구현하는 방식을 확인하려면 네트워크 공부를 좀 더 해야겠다.

결과물

캡챠까지

This post is licensed under CC BY 4.0 by the author.