Top Banner
웹킷과 자동화의 약속된 승리 python으로 에반게리온: Q 예매하기
35

웹표준과 자동화의 약속된 승리

Jul 17, 2015

Download

Software

Young-Ho Cha
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 웹표준과 자동화의 약속된 승리

웹킷과 자동화의약속된 승리python으로 에반게리온: Q 표 예매하기

Page 2: 웹표준과 자동화의 약속된 승리

발표자 소개

Page 3: 웹표준과 자동화의 약속된 승리

발표자의 나쁜 습관

Page 4: 웹표준과 자동화의 약속된 승리

발표자의 나쁜 습관

Page 5: 웹표준과 자동화의 약속된 승리

첫경험?

Page 6: 웹표준과 자동화의 약속된 승리

예매를 하려고 했는데...

● 갑자기 갑님이랑 워크샵 일정이 잡힘.○ 위치는 머나먼 휘닉스 파크.○ 워크샵 일정과 예매 오픈시간이 겹침.

● 스마트폰으로 예매 시도..

Page 7: 웹표준과 자동화의 약속된 승리

강원도의 흔한 통화권 이탈

Page 8: 웹표준과 자동화의 약속된 승리

망했어요

Page 9: 웹표준과 자동화의 약속된 승리

두번째 삽질

Page 10: 웹표준과 자동화의 약속된 승리

자동화를 해볼까?

Page 11: 웹표준과 자동화의 약속된 승리

자동화 하기엔 너무나도 복잡한...

Page 12: 웹표준과 자동화의 약속된 승리

우리에겐 심플한 모바일 페이지가!!

Page 14: 웹표준과 자동화의 약속된 승리

아예 웹 브라우져를 (재빨리) 만들어버리자

● 새로운 기술을 바닥부터 배우기엔 시간이 없

다.

● 기존의 웹 브라우져(의 sandbox)에서 제공하

는 기능만으로는 뭔가 부족하다.

● 그리고 쓰기 쉬운 python을 이용하자!!!

Page 15: 웹표준과 자동화의 약속된 승리

Webkit

● 대부분의 모바일 브라우져에서 쓰이는 웹 렌

더러 엔진

● 웹 브라우져에서 제공되는 기능 대부분이 사

용 가능

Page 16: 웹표준과 자동화의 약속된 승리

GObject Introspection

● GObject/Gtk 에서 사용되는 language

binding middleware○ 여기에 있는 대부분의 API를 지원

● Python을 아주 잘 지원합니다.

● 더 자세히 알고 싶으면 예전 발표자료 나 제목

의 링크를 참조하세요.

Page 17: 웹표준과 자동화의 약속된 승리

GObject Introspection의 단점.

● Documentation이 부실합니다..(..)○ 바인딩을 위한 middleware 만 제공

○ api 형태는 짬으로 헤쳐나가야 함.

■ webkit-gtk C reference 참조

■ 그런데 dom쪽은 reference조차 없음● js dom api를 참조

Page 18: 웹표준과 자동화의 약속된 승리

구현할 것

● 특정 페이지를 열면 특정 메소드 수행○ 로그인 페이지 열면

■ 인증정보 넣고 확인버튼 찾아서 click○ 극장선택 페이지 열면

■ 원하는 극장/상영관 찾아서 click○ 결재 페이지 열면

■ 카드 번호와 개인정보 입력후 확인버튼 찾아서 click

● 골든박스 찾아보기○ 가운데 자리와의 거리를 얻어온 다음, 정렬해서 첫번째 자리를 얻어옴

Page 20: 웹표준과 자동화의 약속된 승리

명당자리 찾기

● 앉고싶은 지점을 정한 후 가까운 자리를 찾으면 됨.

Page 21: 웹표준과 자동화의 약속된 승리

결전의 시간!

Page 22: 웹표준과 자동화의 약속된 승리

망했어요(2)

Page 23: 웹표준과 자동화의 약속된 승리

러시아에선 외양간이 소를 고칩니다.

● 정해진 시간에 페이지 처리를 못하면 reload 추가

Page 24: 웹표준과 자동화의 약속된 승리

덤으로 몇 가지 최적화

● dns prefetch○ hostname이 하나밖에 안쓰여서, 그렇게 큰 효과는 없음.

● 이미지 로딩하지 않기● 그외 설정할 수 있는 여러가지 값

Page 25: 웹표준과 자동화의 약속된 승리

세번째 전쟁

Page 26: 웹표준과 자동화의 약속된 승리

버.. 버틸 수가 없다.

Page 27: 웹표준과 자동화의 약속된 승리

한층 더 열악해진 상황

● 단 하루, 달랑 2회 상영○ 수요에 비해 공급이 너무 적음

● 덕들 중에 나처럼 생각하는 사람이 있을텐

데...

● 메가박스 페이지는 처리하기 귀찮..○ cgv는 한땀한땀 div id로 잘 감싸져있는데..

○ megabox는 ...

Page 28: 웹표준과 자동화의 약속된 승리

어쨌든 대충 완성했는데...

Page 29: 웹표준과 자동화의 약속된 승리

망했어요(3)

Page 30: 웹표준과 자동화의 약속된 승리

러시아에선 외양간이 소를 고칩니다.(2)

● alert창 무시하기 추가

● 이대로 포기해야 하나...

Page 31: 웹표준과 자동화의 약속된 승리

취소표를 노리자!!!

● 예매 후 여러가지 이유로 취소를 합니다.○ 시간이 안맞다던가...○ 자리 양도라던가...

● 주기적으로 빈자리 확인 후 자동예매 하도록 긴급 수정

Page 32: 웹표준과 자동화의 약속된 승리

7시간 후...

Page 33: 웹표준과 자동화의 약속된 승리

그 외 여러 응용 방법?

● iPhone 도입 후 웹 어플리케이션(특히 모바일

용)으로 할 수 있는 것이 점점 늘어나고 있음○ 디아블로 한정판 온라인 구매

○ 구글 IO 참가 신청

Page 34: 웹표준과 자동화의 약속된 승리

얼렁뚱땅 결론

● 한번에 잘되는거 없다.○ 테스트. 테스트. 그리고 또 테스트

● 기술적 접근도 중요하지만, 도메인 지식 또한

상당히 중요하다.

● 프로그래머의 가치를 올려주는 것은 자동화.

Page 35: 웹표준과 자동화의 약속된 승리

http://github.com/ganadist/cgv_reservation

Implementation