Skip to content

라인 봇 만들고 서비스한 이야기

지난 며칠동안 서버가 조금 붐볐다. 한국에서 열린 동아시아지역 수련회에서 내가 만든 라인봇으로 공지를 보내고 cs 일부를 처리했다. 인공지능 대화봇은 아니지만 유용하게 소통을 했을 것 같다. 나는 업무가 바빠 현장에 가보지는 못했다.

라인 봇

왜 라인인가. 챗봇 만들기 연재(언제 끝내지…)에도 있지만 라인은 카카오보다 봇 api가 다양하다. 여전히 push가 불가능한 카카오톡에 비해 라인은 공지를 쉽게 보낼 수 있었다. 지금은 카카오톡에도 달라진 점이 있는데 그 내용은 아래에 따로 정리한다. 동아시아 지역 수련회이기에 라인을 요청한 것도 있다. 외국인 대부분이 라인을 쓰고있을 것 같고, 스태프로 일하는 한국인들이 라인을 설치하는 게 진입장벽이 덜 할 것 같았다.

작동 기능

가장 중점으로 둔 것은 전체 메시지 발송이다. 전체 메시지 발송을 할 수 없으면 모든 사람이 같은 메신저를 이용할 의미가 없다. 그래서 가장 먼저 전체 메시지 발송을 고민했다.

전체 메시지라는 것은 개별 메시지 발송을 모두에게 보내는 것이기에, 내부 작동은 발송 시점의 친구 리스트를 불러와 개별 메시지 발송이 되도록 작업했다. 그러기 위해선 친구 리스트 관리와 전체 친구 목록이 필요했다.

사용자가 메시지를 보낼 필요가 있을까. 하지 말라고 해도 할 사람들은 있고, 그렇다면 사용자가 보낸 메시지를 수신하고 이를 정리해야 했다. 수신 메시지 목록도 새로 만들었다.

라인봇 API를 살펴보니 사진과 동영상도 주고받을 수 있어서, 발송은 텍스트만 하되 수신은 이미지와 동영상도 가능하도록 구조를 변경했다. 수백명이 사진 한 장씩만 보내더라도 스토리지가 폭주할 것이기에 고민하다가 google drive에 디렉토리를 하나 만들고 여기에 모든 수신 데이터가 저장되도록 만들었다.

추가로 메시지 예약 기능이 들어갔다.

늘 현장은 사고가 생긴다

사용자가 메시지를 보내면 답장이 어렵다는 자동응답이 전송된다. 문제는 이를 무시하고 자신의 이야기를 하는 사용자가 생기는 것이다. 외국의 참가자가 급하다며 메시지를 계속 보내왔고, 이에 대한 응답이 필요했다. 사용자 아이디는 알고있었기 때문에 개별 메시지 발송은 어렵지 않지만 매번 사용자를 검색하고 보내는 과정이 번거로워보였다. 그래서 수신 메시지의 경우 quick reply 기능을 추가했다.

사용자가 보낸 메시지가 누락되는 문제도 생겼다. 이모지는 mysql 5.3 이상에서만 저장 가능한데, 오래된 남는 서버를 이용하다보니 이모지를 저장할 수 없는 다비 상태였다. 어떻게할까 고민하다가 사용자 입력 메시지는 파일로 저장해 손실없는 처리가 되도록 개선했다.

토론 시스템

2015년에 토론 시스템-웹 기반-을 만든 적이 있다. 채팅하듯 사람들이 글을 올리고 관리자가 선별한 내용들이 화면에 나오며 그 중에서 하나의 글을 선택하면 내용이 확대되는 정도의 기능이 있는 시스템이었다. 적당한 테스트에는 문제가 없었는데 약 300명의 사용자가 앞에서 진행하는 난상토론을 보며 글을 올리고 새로고침을 계속하다보니 디비 커넥션에서 오류가 생겼었다. 시스템 자체에 대한 피드백은 좋았는데 운영측에서 진땀을 뺀 경험이 있다.

이번에 만든 라인봇을 이용해서도 비슷하게 만들 수 있지 않을까 싶었고 내부 구조는 토론 처리가 가능하도록 만들었는데 써먹지는 못했다. 이 시스템까지 썼으면 더 좋은 경험과 2015년과의 비교가 됐을텐데 조금 아쉽다.

운영과 개선

봇으로 서비스를 하면 확실히 개발자가 손을 덜 쓰게된다. 내가 현장에 없으니 피드백이 적어서 그럴수도 있었지만 개발에 들인 시간은 엄청나게 적었고, 이미 쓰던 기술을 쓰느라 더 쉬웠다.

한창 봇을 만들며 테스트하는 중에 카카오톡에서는 카카오톡 플러스친구를 무료로 오픈했다. 외국인에게 카카오톡을 설치하게 하고 이 서비스를 이용하게 하면 어떤가하는 이야기도 나왔는데 다행히 그렇게 진행하지는 않아서 내가 만든 기술을 쓸 수 있었다. 오픈 직전에 파파고 API가 나와서 번역 기능을 넣을까 고민도 해봤는데 딱히 쓸 일이 없어서 그냥 놔뒀다.

봇은 할 수 있는 일이 엄청나게 적다. 내가 만든 봇도 카카오톡 플러스친구로 제공했다면 똑같은 서비스를 제공할 수 있었다. 플러스친구의 관리 UI가 더 예쁘고 깔끔하기도 하다. 내가 만든 서비스에 다른 기능을 붙이지 않으면 굳이 쓸 이유가 없어지게 된다. 추가 기능으로 토론을 넣었지만 쓸 일이 없어서 쓸 수가 없게됐고, 사용자가 보낸 파일을 한 곳에서 저장해 볼 수 있게 만든 것 말고는 나을 게 없다. 봇으로 할 수 있는 일에 대해서 더 고민을 해봐야겠다.

Published in엉터리개발자