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

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

Upload: young-ho-cha

Post on 17-Jul-2015

71 views

Category:

Software


5 download

TRANSCRIPT

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

발표자 소개

발표자의 나쁜 습관

발표자의 나쁜 습관

첫경험?

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

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

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

강원도의 흔한 통화권 이탈

망했어요

두번째 삽질

자동화를 해볼까?

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

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

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

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

다.

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

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

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

Webkit

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

더러 엔진

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

용 가능

GObject Introspection

● GObject/Gtk 에서 사용되는 language

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

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

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

의 링크를 참조하세요.

GObject Introspection의 단점.

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

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

■ webkit-gtk C reference 참조

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

구현할 것

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

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

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

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

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

명당자리 찾기

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

결전의 시간!

망했어요(2)

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

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

덤으로 몇 가지 최적화

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

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

세번째 전쟁

버.. 버틸 수가 없다.

한층 더 열악해진 상황

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

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

데...

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

○ megabox는 ...

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

망했어요(3)

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

● alert창 무시하기 추가

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

취소표를 노리자!!!

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

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

7시간 후...

그 외 여러 응용 방법?

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

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

○ 구글 IO 참가 신청

얼렁뚱땅 결론

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

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

상당히 중요하다.

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

http://github.com/ganadist/cgv_reservation

Implementation