SlideShare une entreprise Scribd logo
1  sur  14
부동산 텔레그램봇
by 신호철 @SK Planet
cybrshin@gmail.com
2016.04.20
Who am I?
- 귀찮귀찮 열매를 먹은 건지, 귀찮은 일은 너무 하기 싫음.
- 가성비가 떨어지는 일은 하기 싫음.
- 일하는 거는 비교적 잘 참는데, 그 외의 일들은 잘 못 참음.
WOW 조차도 노가다는 하기 싫었음.
사냥봇 낚시봇
https://www.youtube.com/watch?v=IkAEjyy1Pe4 https://www.youtube.com/watch?v=Zqx08E3CVFI
결국에는...
- 그냥 버리기는 아까워서, 책으로 정리까지 했으나…
- http://www.yes24.com/24/goods/2549646
…
- 악플(?)이 아닌 신랄한 댓글에 ㅈㅈ.
- http://blog.yes24.com/blog/blogMain.aspx?blogid=wonlover&artSeqNo=8939
90
- 다행히 지금은 절판됨 ㅜㅠ.
애니팡, 캔디팡도...
- wow bot과 거의 유사하게
픽셀분석해서 퍼즐맞추는 방식.
- 이 때 카톡 친구들이 많이 친구를
끊었음. --;
그런데...
- 아파트 값을 알아보다가 빡침.
- 정보가 공개되어 있음이 분명한데, 관심 지역에 대한 모니터링을 하기가 힘듬.
- 조회용으로는 괜찮은 application들이 많은데,
noti를 내가 원하는 방식으로 보내주는 app은 없음.
- 제일 유사한게 호갱노노인데, 평수까지 동일해야해서 노티가 거의 안 옴.
퇴근 후에, 내가 만들어야 겠다
- UI 붙이는 건 귀찮아라고 말하지만 능력 부족
- 텔레그램 봇으로 하자.
- 요구사항
- 지역별 아파트 실거래가 조회할 수 있어야 함.
- 변경이 있을 경우, 아침마다 noti 메시지 발송.
필요 기술
- Telegram bot api
- https://core.telegram.org/bots/api
- 그러나 telepot라는 library를 사용하는 것이 더 간단해 보임.
- https://github.com/nickoala/telepot
- 데이터는 어떻게?
- crawl 해야되려나?
- 아니, open api를 쓰자
How to create BOT
- BotFather에게 다음과 같이 메시지를 날리면 끝.
Process
- 2개의 process가 필요.
- BOT에게 말을 걸어서 실거래가를 조회하고, noti를 등록하기 위한 process가 필요.
- forever를 사용해서 항상 실행되도록 함.
- https://github.com/foreverjs/forever
- 매일 아침 새로운 거래가에 대해 noti를 날려줄 process가 필요.
- crontab으로 하루에 1번 오전에 실행.
db?
- DB도 쓰기 귀찮지만 process가 2개이고, 둘이 conflict을 낼 확률(맹열히 동시에
접근할 확률)은 거의 없으므로 mySQL을 쓸 필요는 없어 보임.
- python에 내장된 SQLite을 사용해도 문제 없어 보임.
- Tables(SQLite는 file단위로 관리되므로 각각 db files로 분리)
- Loc : 지역정보 조회를 위한 정보들.
- User : 유저들이 등록한 noti 정보들.
- Logs : Noti를 중복해서 보내지 않기 위해 저장.
애로사항
- 1주일 정도만에 만들다보니, 예외처리가 다양하게 되어 있지는 않음.
- data.go.kr이 생각보다 자주 먹통이 됨.
- 502 proxy error가 나는 경우가 생각보다 많음.
- 최근 2주일 동안 2번 장애 발생...
- notification 등록건수가 1,000개에 가까워져서 오전 8시에 시작한 노티 메시지
가 12시는 되어야 끝이 남.
- sendMessage가 1초에 1개 정도 나감…
소스코드 공유 및 결과물
- Github
- https://github.com/dspshin/aptrent-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 외 다수...

Contenu connexe

Tendances

Spring project 예제 분석
Spring project 예제 분석Spring project 예제 분석
Spring project 예제 분석
홍섭 안
 

Tendances (8)

아라한사의 스프링 시큐리티 정리
아라한사의 스프링 시큐리티 정리아라한사의 스프링 시큐리티 정리
아라한사의 스프링 시큐리티 정리
 
스프링 Generic autowired이용해보기
스프링 Generic autowired이용해보기스프링 Generic autowired이용해보기
스프링 Generic autowired이용해보기
 
Spring project 예제 분석
Spring project 예제 분석Spring project 예제 분석
Spring project 예제 분석
 
스프링 프레임워크로 블로그 개발하기
스프링 프레임워크로 블로그 개발하기 스프링 프레임워크로 블로그 개발하기
스프링 프레임워크로 블로그 개발하기
 
jQuery angular, React.js 로 댓글달아보기 공부했던 기록
jQuery angular, React.js 로 댓글달아보기 공부했던 기록jQuery angular, React.js 로 댓글달아보기 공부했던 기록
jQuery angular, React.js 로 댓글달아보기 공부했던 기록
 
spring data jpa 간단한 튜토리얼
spring data jpa 간단한 튜토리얼spring data jpa 간단한 튜토리얼
spring data jpa 간단한 튜토리얼
 
스프링시큐리티와 소셜연습 이해를 위한 글
스프링시큐리티와 소셜연습 이해를 위한 글스프링시큐리티와 소셜연습 이해를 위한 글
스프링시큐리티와 소셜연습 이해를 위한 글
 
Django in Production
Django in ProductionDjango in Production
Django in Production
 

En vedette

En vedette (10)

ML + 주식 phase 2
ML + 주식  phase 2ML + 주식  phase 2
ML + 주식 phase 2
 
머신러닝 + 주식 삽질기
머신러닝 + 주식 삽질기머신러닝 + 주식 삽질기
머신러닝 + 주식 삽질기
 
Node.js DBMS short summary
Node.js DBMS short summaryNode.js DBMS short summary
Node.js DBMS short summary
 
Lua vs python
Lua vs pythonLua vs python
Lua vs python
 
Python3 brief summary
Python3 brief summaryPython3 brief summary
Python3 brief summary
 
딥러닝을 11번가 영상 검색에 활용한 경험 공유
딥러닝을 11번가 영상 검색에 활용한 경험 공유딥러닝을 11번가 영상 검색에 활용한 경험 공유
딥러닝을 11번가 영상 검색에 활용한 경험 공유
 
[MindsLab] Company Introduction
[MindsLab] Company Introduction[MindsLab] Company Introduction
[MindsLab] Company Introduction
 
인공지능-빅데이터연구센터[ABRC] 산학협력사례집
인공지능-빅데이터연구센터[ABRC] 산학협력사례집인공지능-빅데이터연구센터[ABRC] 산학협력사례집
인공지능-빅데이터연구센터[ABRC] 산학협력사례집
 
[마인즈랩] 챗봇 소개서 201707
[마인즈랩] 챗봇 소개서 201707[마인즈랩] 챗봇 소개서 201707
[마인즈랩] 챗봇 소개서 201707
 
빅데이터윈윈 컨퍼런스_대용량 데이터 분석 시스템 구축사례
빅데이터윈윈 컨퍼런스_대용량 데이터 분석 시스템 구축사례 빅데이터윈윈 컨퍼런스_대용량 데이터 분석 시스템 구축사례
빅데이터윈윈 컨퍼런스_대용량 데이터 분석 시스템 구축사례
 

부동산 텔레그램 봇

  • 1. 부동산 텔레그램봇 by 신호철 @SK Planet cybrshin@gmail.com 2016.04.20
  • 2. Who am I? - 귀찮귀찮 열매를 먹은 건지, 귀찮은 일은 너무 하기 싫음. - 가성비가 떨어지는 일은 하기 싫음. - 일하는 거는 비교적 잘 참는데, 그 외의 일들은 잘 못 참음.
  • 3. WOW 조차도 노가다는 하기 싫었음. 사냥봇 낚시봇 https://www.youtube.com/watch?v=IkAEjyy1Pe4 https://www.youtube.com/watch?v=Zqx08E3CVFI
  • 4. 결국에는... - 그냥 버리기는 아까워서, 책으로 정리까지 했으나… - http://www.yes24.com/24/goods/2549646
  • 5. … - 악플(?)이 아닌 신랄한 댓글에 ㅈㅈ. - http://blog.yes24.com/blog/blogMain.aspx?blogid=wonlover&artSeqNo=8939 90 - 다행히 지금은 절판됨 ㅜㅠ.
  • 6. 애니팡, 캔디팡도... - wow bot과 거의 유사하게 픽셀분석해서 퍼즐맞추는 방식. - 이 때 카톡 친구들이 많이 친구를 끊었음. --;
  • 7. 그런데... - 아파트 값을 알아보다가 빡침. - 정보가 공개되어 있음이 분명한데, 관심 지역에 대한 모니터링을 하기가 힘듬. - 조회용으로는 괜찮은 application들이 많은데, noti를 내가 원하는 방식으로 보내주는 app은 없음. - 제일 유사한게 호갱노노인데, 평수까지 동일해야해서 노티가 거의 안 옴.
  • 8. 퇴근 후에, 내가 만들어야 겠다 - UI 붙이는 건 귀찮아라고 말하지만 능력 부족 - 텔레그램 봇으로 하자. - 요구사항 - 지역별 아파트 실거래가 조회할 수 있어야 함. - 변경이 있을 경우, 아침마다 noti 메시지 발송.
  • 9. 필요 기술 - Telegram bot api - https://core.telegram.org/bots/api - 그러나 telepot라는 library를 사용하는 것이 더 간단해 보임. - https://github.com/nickoala/telepot - 데이터는 어떻게? - crawl 해야되려나? - 아니, open api를 쓰자
  • 10. How to create BOT - BotFather에게 다음과 같이 메시지를 날리면 끝.
  • 11. Process - 2개의 process가 필요. - BOT에게 말을 걸어서 실거래가를 조회하고, noti를 등록하기 위한 process가 필요. - forever를 사용해서 항상 실행되도록 함. - https://github.com/foreverjs/forever - 매일 아침 새로운 거래가에 대해 noti를 날려줄 process가 필요. - crontab으로 하루에 1번 오전에 실행.
  • 12. db? - DB도 쓰기 귀찮지만 process가 2개이고, 둘이 conflict을 낼 확률(맹열히 동시에 접근할 확률)은 거의 없으므로 mySQL을 쓸 필요는 없어 보임. - python에 내장된 SQLite을 사용해도 문제 없어 보임. - Tables(SQLite는 file단위로 관리되므로 각각 db files로 분리) - Loc : 지역정보 조회를 위한 정보들. - User : 유저들이 등록한 noti 정보들. - Logs : Noti를 중복해서 보내지 않기 위해 저장.
  • 13. 애로사항 - 1주일 정도만에 만들다보니, 예외처리가 다양하게 되어 있지는 않음. - data.go.kr이 생각보다 자주 먹통이 됨. - 502 proxy error가 나는 경우가 생각보다 많음. - 최근 2주일 동안 2번 장애 발생... - notification 등록건수가 1,000개에 가까워져서 오전 8시에 시작한 노티 메시지 가 12시는 되어야 끝이 남. - sendMessage가 1초에 1개 정도 나감…
  • 14. 소스코드 공유 및 결과물 - Github - https://github.com/dspshin/aptrent-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 외 다수...