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를 쓰자
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 외 다수...