Preview only show first 10 pages with watermark. For full document please download

부동산 텔레그램봇 사내공유 @tech

1. 부동산 텔레그램봇 후기+@ by 신호철 @SKP [email protected] 2016.05.26 2. Profile (@회사) - 진영: Syrup본부, SyrupStore 개발팀. - 종족:…

   EMBED

  • Rating

  • Date

    June 2018
  • Size

    419.6KB
  • Views

    4,219
  • Categories


Share

Transcript

1. 부동산 텔레그램봇 후기+@ by 신호철 @SKP [email protected] 2016.05.26 2. Profile (@회사) - 진영: Syrup본부, SyrupStore 개발팀. - 종족: 개발자 - 나이: 0x20대 - 클래스: frontend 개발 - 스킬: javascript, ... 3. ... 4. Profile - (퇴근 후) - 귀찮귀찮 열매를 먹은 건지, 귀찮은 일은 너무 하기 싫음. - 가성비가 떨어지는 일은 하기 싫음. - 일하는 거는 비교적 잘 참는데, 그 외의 일들에 대한 노가다는 잘 못 참음. - 게임 등 노는 것도 포함. 5. WOW - World of Warcraft, 다음 달에 영화(Warcraft)로도 나와요. - 2005년에 출시됨. - 이 게임을 제대로 즐기기 위해서는, 일단 만렙 달고 레이드를 해야 하던 때. - 그런데, 40인 레이드를 제대로 하려면 평소에 회사도 안 가고 재료를 구하러 다 녀야 하는 난감한 상황. - 그 당시 40인 공격대는 웬만한 회사보다 군기가 쎕니다. - 혹은 퇴근 후에 술약속도 잡지 않고 레이드 및 준비만 해야 함. 6. WOW 조차도 노가다는 하기 싫었음. - 낚시가 너무 지겨웠어요. - https://www.youtube.com/watch?v=Zqx08E3 CVFI - 원래는 이런 작업을 몇 시간 씩 해야 합 니다. - 낚시를 해서 낚은 물고기들을 경매장에서 팔아서 돈으로 환산하거나 물약을 만들어서 레이드 에서 씁니다. - 제가 하던 서버에서 경매장의 물고기 7. 사냥도... - 사냥도 귀찮아 졌습니다. - https://www.youtube.com/watch?v=IkAEjyy1Pe4 - 모든 사냥의 자동화는 하지 못했고, 사냥꾼이 라는 직업전용으로만 했음. - 사냥 이후의 전리품들 수집, 무두, 골드 수집. - 사냥을 하다 간혹 죽는 경우가 있는데, 그러 면 시체를 찾아와서 부활하는 기능까지… - 중국산 봇도 많이 만났습니다. - 봇으로 의심하고 말 거는 사람들 때문에 적절 한 채팅 대응기능까지 넣어야 하는가에 대한 심각한 고민도... 8. How? 1. Visual C++로 윈도우 핸들을 얻어와서, 2. 픽셀 정보를 득 3. 어떤 화면이고 어떤 상태인지 알아낸 후, 4. 적절한 (마우스) 이벤트를 던짐. 5. 2번으로 반복. 9. 결국에는... - 파밍은 자동화를 완벽하게 하고, 편안한 WOW생활을 영위. - 그냥 버리기는 아까워서, 2007년에 책으로 정리까지 했으나… - http://www.yes24.com/24/goods/2549646 10. … - 악플(?)이 아닌 신랄한 댓글에 gg. - http://blog.yes24.com/blog/blogMain.aspx?blogid=wonlover&artSeqNo=8939 90 - 연예인들이 왜 악플에 고통 받는지 약간이나마 이해할 수 있게 됨. - 다행히 지금은 절판됨. - 절대 구매하지 마세요. 11. 애니팡, 캔디팡도... - 문득 내가 왜 이 단순한 작업에 목숨을 걸고 있나라는 생각이 듦. - wow bot과 거의 유사하게 픽셀분석해서 퍼즐맞추는 방식. - mobizen을 연결해서 pc에서 윈도우 핸들 득 후 동일하게 처리. - 이 때 카톡 친구들이 많이 친구를 끊었음. --; - 봇과 승부를 하는 것은 정당하지 않다나? 12. +Monitoring - BlueStacks : PC에서 android를 구동. - CrazyRemote - TeamViewer - Chrome Desktop 13. 이제 본론으로 들어가죠. - 전세값이 너무 올라서, 이리저리 아파트 값을 알아보다가 빡침. - 정보가 공개되어 있음이 분명한데, 관심 지역에 대한 모니터링을 하기가 힘듦. - 조회 용으로는 괜찮은 application들이 많은데, noti를 내가 원하는 방식으로 보내주는 app은 없음. - 제일 유사한게 호갱노노인데, 평수까지 동일해야해서 노티가 거의 안 옴. 14. 퇴근 후에, 내가 만들어야겠다 - UI 붙이는 건 귀찮아라고 말하지만 능력/시간 부족. 게다가 회사에서 하던 일을 퇴근 후에도 또 할 순 없어. - 텔레그램 봇으로 하자. - 요즘 봇api가 흥하던데... - 요구사항 - 지역별 아파트 실거래가를 조회할 수 있어야 함. - 변경이 있을 경우, 아침마다 noti 메시지 발송. 15. 필요 기술 - Telegram bot api - https://core.telegram.org/bots/api - 그러나 telepot라는 library를 사용하는 것이 더 간단해 보임. - https://github.com/nickoala/telepot - 데이터는 어떻게? - crawl 해야 되려나? - 아니... 현기증 나기도 하고, open api가 있으니 이것을 쓰자 16. How to create BOT - BotFather에게 다음과 같이 메시지를 날리면 끝. 17. Process - 최소 2개의 process가 필요. - BOT에게 말을 걸어서 실거래가를 조회하고, noti를 등록하기 위한 process가 필요. - forever를 사용해서 항상 실행되도록 함. - https://github.com/foreverjs/forever - 매일 아침 새로운 거래가에 대해 noti를 날려줄 process가 필요. - crontab으로 하루에 1번 오전에 실행. 18. DB - DB도 쓰기 귀찮지만 process가 2개이고, 저장해 놓아야 하는 요구사항이 있음. - 둘이 conflict을 낼 확률(맹렬히 동시에 접근할 확률)은 거의 없으므로 따로 daemon을 띄우는 애들(mySQL등) 을 쓸 필요는 없어 보임. - python에 내장된 SQLite을 사용해도 문제 없어 보임. - Tables(SQLite는 file단위로 관리되므로 각각 db files로 분리) - Loc : 지역정보 조회를 위한 정보들. - User : 유저들이 등록한 noti 정보들. - Logs : Noti를 중복해서 보내지 않기 위해 저장. 19. $ - 아차, 나 금수저 아니지? 서버비는 벌어야 겠다. - 어떻게 벌지? - 텔레그램 메시지를 뿌릴때, 링크를 같이 주고 해당 링크페이지에 애드센스를 달면? 20. Data는? (추가된 페이지에 대한) - data.go.kr에서 곧바로 data를 가져오는 방식인데, 웹페이지를 구성할 때 필요한 정보는 어떻게 하지? - 따로 정보를 저장해 놓지는 않았고, sync도 문제고... - data.go.kr에서 js api도 지원해 주네? - client단에서 js api를 찔러서 해결하자. - 화면단의 표현은 - highcharts - bootstrap 21. CORS... - data.go.kr로 호출하는데 Same Origin Policy 에러가 발생. - 헐… 서버단에서 CORS 설정을 안 해 둔 듯... - jsonp는 되려나? - 역시 서버쪽 설정을 안 해 뒀는지, 안됨 --; - js api 사용 포기. - node.js용 api였나보구나... - 텔레그램쪽을 python으로 한 김에 mod_python으로 구성. 22. 애로사항 - 1주일 정도 만에 만들다 보니, 예외처리가 다양하게 되어 있지는 않음. - data.go.kr이 생각보다 자주 먹통이 됨. - 모든 문제의 근원. - 502 proxy error가 나는 경우가 생각보다 많음. - 최근 2주일 동안 2번 장애 발생… - 중간에 DB를 만들어서 주기적으로 갱신을 했어야 했음. - notification 등록건수가 1,000개에 가까워져서 전송할 메시지가 많은 경우에는, 23. 소스코드 공유 및 결과물 - Github - https://github.com/dspshin/realestate-bot (api key가 소스에 박혀 있는데, 설마 누가 약용하겠어? telegram token까지는 박아두지 않음) - Telegram bot URL - https://telegram.me/apart_bot - 홍보 - http://clien.net/cs2/bbs/board.php?bo_table=lecture&wr_id=314658 - 자매품 - https://telegram.me/officetel_bot 외 다수... 24. The END Thank you