모에모에 코딩

강남대학교 달구지봇 개발기 본문

개발 일기/카카오톡 챗봇

강남대학교 달구지봇 개발기

hazimenya 2019. 2. 15. 11:39
반응형

달구지봇을 개발한지 어느덧 1년이 지났다. 진짜 별에 별일 들이 다 있었지만 언제나 사용해주는 학우들이 있었기에 유지할 수 있었던 것 같다. 그런 날들을 한번 회상해보고자 글을 작성하였다.


왜 이름이 달구지봇?

학교에서 제공하는 무료 셔틀버스가 있는데 그걸 학우들은 달구지라고 부른다. 이유는 잘 모르겠지만. 아무튼 달구지는 시간표에 정해진 시간대로 운행해왔고, 난 그 시간표를 카카오톡 채팅 봇으로 알려주면 좋겠다 싶어 개발하게 되었다. 

근데 늘 그래왔듯 네이밍 센스가 없는 것 + 국어 딸림 크리가 곂치면서 달구지봇 이라는 이름이 지어지게 되었다.


PS. 더 좋은 이름이 있다면 언제든 제보 바란다. 맘 같아선 바꾸고 싶음


버전별 달구지봇 

VER. 1.0

정말 기능이라고는 3가지만 존재했던 첫 버전이다. 단순 그 자체일 뿐더러 전체 달구지 시간표 안내는 사진이 아닌 텍스트로 출력을 했었으니 일반적으로 사람이 쓰기엔 조금 무리가 있던 버전이다. 

그래도 뭔가 만들어 냈었으니 홍보를 해볼겸 실제로 걍 보이는 쌩판 안면없던 학우들에게 써보라고 어떻냐고 물어보기도 했다. 역시 반응은 처참했다. 아직도 기억에 남는 피드백들인데 


- 이미 시간표 이미지로 배포가 되었고 걍 사진을 보면 되는데 왜 이게 필요한가요?

- 전 시간표를 다 외워서 필요 없어요

- ㅄ


음... 다 팩트라서 반박은 못 했다. 

그래도 홍보를 꾸준히 하면서 업데이트를 지속해나갔다. 걍 밀어 부치자 식으로 하다보니



교내 학술제에도 끌고 나갔다. 홍보를 위해

저 발표를 할 당시엔 500+ 친구추가가 되었고 좀 더 매력적인 기능을 구현하기 위해 달구지 실시간 위치 안내를 구현 준비 중이었다. 다행이도 교수님들이 이쁘게 봐주셔서 최우수를 수상할 수 있었고, 이 덕분에 계속 업데이트를 할 수 있게되었다.


VER. 2.0

하지만 지속적으로 문제가 되던 부분이 있었다. 뭐 여러 문제가 있었지만, 기술적으로는 퍼포먼스가 문제였다. 당시 Firebase Functions 가 BETA 서비스 였고, 지역도 미국에 있었기 때문에 뭐 조금만 무거운 작업이 들어가면 카카오톡의 응답 제한시간인 5초를 넘겼다. 유지보수도 문제였다. 처음 짜보는 챗봇인데다가 Node.js가 익숙하지 않았기 때문에 되게 지금봐도 이상하다.


망할


그래서 방학기간동안 구조를 갈아엎게된다. 


이 사진이 뭘까 싶을지도 모른다. 바로 달구지봇 2.0 개발당시 사용자 상태 변화 시나리오를 그래프로 작성해둔 것 이다.

이게 되게 중요한 사건이었는데, 1.0 버전은 사용자 입력에 따른 단순 응답이었다면 2.0 버전은 사용자 상태에 따른 응답이기 때문이다.

이로써 생기는 이득이 많았는데, 일단 저 상태를 처리할 엔진을 만들면 왠만한 응답은 서버가 알아서 상태를 확인해 응답을 자동으로 해주었다. 그리고, 무엇보다도 빠르고 다양한 기능을 관리하기가 쉬워졌다. 당연하게도 사용자가 진행할 루트가 다 결정적이고 예상되었으니깐.

게다가 OpenAPI를 적극 활용하기도 하였다. 



그래서 만들어진 모습이 이렇게. 


1.0 에서 모인 로그데이터를 활용하여 달구지가 혼잡함을 알리는 기능도 추가되어있다. 으썸하지 않나? 달구지봇 홈페이지에서는 달구지 실시간 위치 안내 기능도 제공했었다. 이렇게 가끔 기능 추가도 해주고, 유지만 하면 될줄 알았다.

VER. 3.0

3.0은 이미 만들어 놓은 챗봇에게 심폐소생술을 하기위한 버전이라 봐도 무방할 것 같다. 왜냐? 


카카오톡에서 챗봇 정책을 변경했기 때문이다. 이해가 안된다면 간단하다, 기존 방식을 호환도 안되게 업데이트 해놓고선 2019-12 말 까지 업뎃 안하면 서비스 못하게 한다는 정책을 폈기 때문이다. 때문에 서비스를 포기하는 챗봇이 많이 나오기 시작했다.



다른학교의 챗봇들이 서비스 중단하는 예시들이다. 정말 큰 업데이트였음을 짐작할 수 있다. 나도 물론 포기하려했다. 아니 2.0에서 만든 기능만 해도 얼마나 많고, 1.0에서 2.0 으로 업데이트한지 반년밖에 안되었는데 또 갈아엎어야 하다니, 더군다나 이젠 구글 크래딧 지원도 만료되서 운영비 모두 본인이 부담해야 되는데 어떻게 유지를 하나 싶었다.


그러다 가만 생각해보니 업데이트를 해야할 이유가 생각이 났다. 달구지봇을 졸업과제로 쓰는건 어떨까? 은근 괜찮게 통할 것 같았다. 또한 친구 추가도 당시 1000+ 되었던걸로 기억하는데 주변에서 연락이 오기 시작했다. 계속 서비스 할꺼냐고


좋다 까지꺼 하지뭐

바로 Kakao i open builder OBT 신청 하고 다시 개발을 시작했다. 이번엔 프로젝트를 통째로 갈아 엎었다. 진짜 전부 다 밑바닥 부터 


엔진은 2.0 버전을 기반으로 약간 수정하고, 카카오톡에서 챗봇에게 주는 이쁜 컴포넌트를 사용하는데 초점을 두고 개발했다.


일단은 만들어졌다. 3.0을 배포하였으니 이젠 사용자들의 피드백이 오는걸 기다리고 있으면 된다. 

2.0 버전보단 확실히 기능이 적다. 기간이 많이 소요되는 부분이 있었는데 달구지봇 관리자 페이지가 추가되었기 때문이다. 기존에는 데이터를 수정하려면 늘 DB에 직접 들어가서 값을 바꿔주었다. 이젠 관리를 혼자서 하지 않을 뿐더러 DB에 직접 접근해 수정하는건 누가봐도 이상하기 때문에 추가를 했다.

이렇게 달구지봇 1주년을 맞이하게되었다. 아니 뭐 대단한 프로그램도 아닌데 판 뒤집기를 3번이나 했다. 뭐 그래도 유지 하려면 언젠간은 또 뒤집을 수도 있겠지. 그래도 지금 또 돌아보면 무슨 정신으로 했었는지 기가 막히기도 한다. 

반응형