[카카오톡+Flask] 학과정보알리미(1)

KimCookieYa·2023년 3월 5일
0

학과정보알리미

목록 보기
1/3

배경


에브리타임 게시판에서 재밌는 걸 봤다. 5분마다 학과정보게시판에서 글을 가져와서 알려주는 챗봇을 개발했다고 한다. 학과홈페이지의 RSS를 이용해서 만들었다고 한다. 생각보다 학과홈페이지 들어가서 일일이 체크하는게 귀찮긴 하다.

그래서 필자도 바로 써보려고 했는데 오픈채팅 방식이더라. 사용자 모두 하나의 오픈채팅방에 모아 하나의 챗봇으로 알려주는 시스템.

'어째서 이런 방식으로 하는거지?'하는 의구심이 들었다. 카카오톡 채널을 파서 각 유저마다 개인채널로 알려주면 안되나? 그래서 필자가 직접 개선 버전을 만들고자 한다.

다행히 최근에 다뤄본 Flask로 카카오톡 챗봇을 만든 이들이 여럿 존재하여 도움을 받았다.

출처: https://givemethesocks.tistory.com/78

카카오톡 채널 개설


카카오 비즈니스: https://center-pf.kakao.com/profiles

우선 챗봇을 해줄 카카오톡 채널을 만들었다. 카카오 비즈니스 사이트에서 [+ 새 채널 만들기]로 새 채널을 만들면 된다. 사실 여기선 별로 할 거 없다.

채널 만드는 것보다 프로필용 이미지 만드는데 시간이 더 걸렸다.

챗봇 i Open Builder


i Open Builder 등록: https://i.kakao.com/obt/registration
챗봇 관리자 센터 공식문서

카카오톡 채널 기반 챗봇을 만들기 위해서는 챗봇 관리자 센터 OBT에 등록해야 한다. 등록 페이지에 들어가서 카카오톡 채널 주소와 신청사유를 입력하면 끝!

이제 최대 6일 정도의 시간을 기다리면 된다. 사실 필자는 현 프로젝트가 매우 간단하여 당일치기로 완료할 생각이었는데... 생각지도 못한 곳에서 발목이 잡혔다. 그동안 천천히 서버라도 짜놔야 할 듯하다.

메서드1) event API


그리고 생각지도 못한 변수를 맞이했다. 챗봇 측에서 유저에게 메시지를 보내기 위해서는 카카오톡에서 제공하는 event API를 사용해야 하는데... "유료"이다.

그제서야 오픈채팅 개발자들이 이해가 되었다! 아! 돈이 깨지는구나! 그럼 어쩔 수 없지..

우선 학과홈페이지는 평일(공휴일 제외)에만 갱신된다. 또한 학과홈페이지의 새 글이 올라오는 시간은 점심시간 제외, 오전 9시~오후 6시로 한정된다. 챗봇이 글을 가져오는 갱신주기를 10분으로 잡는다 가정하면,

새 글을 긁어올 시간, 5일 * 8시간 * 60 / 갱신주기 10분 = 하루에 발송할 메시지 48건
즉, 48 * 메시지 건당 15원 = 일일 720원

하루 720원.. 분명 얼마 안되는 금액이지만, 이 챗봇을 하루이틀하고 접을 것은 아니기때문에.

event API를 사용해서 10분마다 메세지를 쏘는 방식은 안된다.

메서드2) 사용자 응답형


그렇다면 남은 방법은 사용자 응답형 방식이다. 챗봇에서 먼저 대화를 시작하는 방식은 유료지만, 이를 제외한 모든 것은 무료이기 때문이다.

아니면 아예 자체 앱을 만들어서 배포해도되지만.. 사용자들에게 친숙한 카카오톡을 기반으로 챗봇을 만드는 편이 나을 것이라 판단했다.

사용자가 새로운 글을 요청하면 응답하는 방식이다. 이건 간단하다. 카카오톡에서 챗봇에 대화형 AI를 넣어준 덕분에 필자는 AI가 감지할 키워드와 API 서버만 건드리면 된다.

i openbuilder 신청결과가 빨리 나와야 뭐라도 할텐데...

profile
무엇이 나를 살아있게 만드는가

0개의 댓글