요즘 스타트업에서 텔레그램 봇을 이용해서 뭔가 해보려는 시도가 많은 것 같다. 나도 그런 시도 중 하나로 텔레그램 봇 개발에 뛰어들었는데, 처음에는 그냥 간단한 메시지 주고받는 수준이겠거니 했는데 이게 생각보다 손이 많이 가는 작업이었다.
처음에는 개인 프로젝트로 시작했다. 우리 회사가 O2O 서비스를 하고 있는데, 가끔 고객 문의나 간단한 알림 같은 걸 봇으로 처리하면 편하겠다는 생각이 들었다. 웹사이트에 문의 남기거나 전화하는 것보다 텔레그램으로 툭 던지면 바로 응답받는 게 좋으니까. 그래서 일단 텔레그램 봇 API를 좀 찾아봤다. 생각보다 문서도 잘 되어 있고, Python 같은 언어로도 쉽게 접근할 수 있게 되어 있어서 ‘이거 금방 되겠는데?’ 싶었다.
첫 삽은 떴는데, 문제는 다음부터
일단 ‘echo’ 봇이라고 해서 사용자가 보낸 메시지를 그대로 다시 돌려주는 기본적인 봇을 만들었다. 이건 정말 5분 컷이었다. 텔레그램에서 BotFather한테 봇 하나 만들고 API 토큰 받아서, 간단한 Python 스크립트 돌리면 끝. 근데 이게 전부가 아니지 않나. 우리 서비스는 사용자 정보도 좀 관리해야 하고, 특정 조건에 따라 다른 응답도 해야 하고, 나중에는 GIS 데이터랑 연동해서 위치 기반 정보도 보여주고 싶었다.
이런 복잡한 기능을 넣으려니까 문제가 생기기 시작했다. 일단 사용자 인증부터가 난관이었다. 텔레그램 봇은 기본적으로 익명성을 전제로 하는데, 우리 서비스에서는 로그인된 사용자만 쓸 수 있도록 해야 하니까. 이걸 어떻게 텔레그램 봇이랑 연결할지가 첫 번째 문제였다. 결국 백엔드 서버를 따로 만들어서 텔레그램 봇이랑 통신하게 하는 방식으로 해결했는데, 그럼 또 서버 개발이랑 DB 관리 같은 게 따라붙는다.
디자인은 누가, 어떻게?
그러고 나서 UI/UX 문제가 나왔다. 텔레그램 봇은 텍스트 기반이 기본인데, 우리 서비스는 모바일 앱 개발도 같이 하고 있어서 시각적인 요소가 꽤 중요했다. 버튼을 써서 메뉴를 제공하거나, 이미지를 보여주거나, 지도 같은 걸 띄워야 하는데, 이걸 텔레그램 봇으로 구현하는 게 영 쉽지가 않았다. 처음에는 프리랜서 디자이너한테 이런 봇 UI를 어떻게 하면 좋을지 물어봤는데, 디자이너 입장에서도 텔레그램 봇 UI는 익숙하지 않아서 그런지 딱히 명쾌한 해답을 주지 못했다. 결국 그냥 기존 앱 UI를 최대한 텍스트와 버튼으로 단순화해서 구현하는 식으로 타협했다. 비용은 대략 100만원 정도 들었던 것 같다. 이 과정에서 텔레그램 봇의 버튼이나 인라인 키보드 같은 것들을 사용법을 익히는 데 시간이 꽤 걸렸다.
GIS 연동, 이거 원래 이렇게 어려운 건가
우리가 O2O 서비스니까 GIS 연동은 필수였다. 사용자 위치를 받아서 주변 정보를 보여주는 기능인데, 텔레그램 봇에서도 위치 정보를 받을 수 있기는 하다. 근데 이걸 받아서 우리 DB에 있는 GIS 데이터랑 매칭하고, 또 그 결과를 텔레그램 메시지로 예쁘게 보여주는 게 보통 일이 아니었다. 처음에는 그냥 간단한 API를 쓸 수 있을 거라고 생각했는데, 실제로는 데이터 포맷 맞추고, 좌표계 변환하고, 오류 처리하는 데 시간을 다 써버렸다. 결국 이 부분은 외부 GIS 솔루션 업체의 도움을 좀 받았다. 솔루션 비용은 별도로 들지 않았지만, 내부 개발 인력이 투입된 시간만 해도 상당했다.
예상치 못한 변수들
개발 과정에서 예상치 못한 변수들이 계속 튀어나왔다. 예를 들어 텔레그램 봇은 24시간 켜져 있어야 하는데, 서버 관리나 모니터링 같은 것도 신경 써야 하고. 가끔 텔레그램 서버 자체에 문제가 생기거나 API가 변경될 때도 있다고 하니, 이런 부분까지 고려하면 꽤나 전문적인 관리가 필요하다는 걸 느꼈다. 처음에는 ‘쉬운 앱 개발’이나 ‘간단한 봇 하나’라고 생각했는데, 이게 서비스 규모가 커지고 기능이 늘어날수록 프로그램 개발이라는 게 원래 복잡한 거구나 싶었다. 특히 창업 초기에는 이런 부분을 다 직접 하거나, 혹은 외부 업체와 소통하면서 진행해야 하는데, 이 과정에서 들어가는 시간과 비용, 그리고 정신적 에너지가 상당하다.
그래도 뭔가 해냈다는 뿌듯함은 있다
물론 처음 목표했던 고객 문의 응대나 간단한 알림 기능은 텔레그램 봇으로 어느 정도 구현했다. 이걸로 업무 효율이 조금은 개선된 것 같기도 하다. 하지만 처음 생각했던 것보다는 훨씬 많은 노력이 필요했고, 아직도 개선해야 할 부분이 많다는 걸 느낀다. 특히 ‘창업 성장 기술 개발 사업’ 같은 정부 지원 사업을 받는 회사라면 이런 개발 과정에서 투입된 시간과 비용을 잘 증빙하는 것도 중요할 텐데, 우리가 처음부터 체계적으로 접근하지 않아서 좀 아쉬운 부분도 있다. 그래도 뭐, 무에서 유를 창조했다는 뿌듯함은 있다. 다만 다음에 또 봇 개발을 하게 된다면, 처음부터 좀 더 큰 그림을 그리고 체계적으로 접근해야겠다는 생각을 한다.

좌표계 변환 때문에 진짜 시간 많이 썼네요. 저희도 처음에는 너무 단순하게 생각했던 것 같아요.
좌표계 변환 때문에 시간을 많이 썼네요. 데이터 처리 자체는 생각보다 훨씬 복잡하다는 걸 깨달았어요.