팝업레이어 알림

팝업레이어 알림이 없습니다.

텔레그램 봇 간 통신 | 개발자 워크플로우 자동화

텔레그램 공식 영상
1920p 클립 · 0:06
자동 재생

소리 없이 자동으로 재생됩니다. 위 버튼으로 멈추거나 속도를 바꿀 수 있어요.

이제 봇들이 서로 대화하고 협업합니다

한 그룹에 봇을 여러 개 두는 것을 막는 것은 없고, 실제로 많은 곳이 그렇게 씁니다. 관리용 하나, 가게용 하나, 피드를 올리는 하나. 합쳐 놓으면 하나의 시스템처럼 보입니다.

동시에 따로따로 고장 나는 네 가지이기도 합니다. 그것도 내가 한 번도 만나 본 적 없는 네 사람이 운영하는. 방에 봇을 몇 개 둘지는 기술 문제가 아니라 운영 판단입니다.

이 글을 읽고 나면 할 수 있는 것

  • 두 번째 봇이 값을 할지 판단할 수 있어요.
  • 기능이 아니라 대상으로 나눌 수 있어요.
  • 운영 주체가 여럿이라는 것이 실제로 뭘 뜻하는지 알 수 있어요.
  • 봇이 서로 엮였을 때 고장을 짚어 낼 수 있어요.

봇은 서로를 지켜보며 대화하지 않습니다

사람들이 처음 떠올리는 그림은 이렇습니다. 방에 봇 둘을 넣으면 회의실의 두 사람처럼 서로 협력하리라는 것. 그렇게 안 됩니다. 각 봇은 자기에게 온 것만 받고, 한 봇이 올린 메시지를 다른 봇이 옆에서 보고 있는 것이 아닙니다.

협업처럼 보이는 것은 전부 뒤에서 일어납니다. 운영자가 만들어 둔 무언가 안에서요. 하나의 서비스가 여러 일을 하며 여러 계정으로 말하고 있거나, 서로 다른 서비스를 그 주인이 이어 붙여 둔 것입니다. 방은 결과가 나타나는 자리이지, 연결이 일어나는 자리가 아닙니다.

이렇게 보면 질문이 달라집니다. 나는 지금 내 그룹 안에 시스템을 조립하고 있는 것이 아니라, 이 방에 자리를 갖는 별개의 주체를 몇으로 할지, 그리고 고장이 날 수 있는 지점을 몇 개까지 둘지를 정하고 있는 것입니다.

봇 하나는 운영 주체 하나입니다

제공처가 다른 봇 셋이면 내 커뮤니티에 세 회사가 자리를 갖는 것입니다. 약관도 셋, 갱신할 것도 셋, 나를 실망시킬 방법도 셋입니다. 두 번째·세 번째 봇의 진짜 비용이 이것입니다.

네 가지 구성, 단순한 것부터 부서지기 쉬운 것까지

전부 어딘가에서는 맞는 구성입니다. 갈라지는 것은 고장 나는 방식입니다.

구성언제 맞나어디서 무너지나
봇 하나가 여러 일을 기본값이고 대개 정답입니다. 계정 하나, 권한 한 벌, 운영자 한 곳, 멤버에게 설명할 것도 하나. 운영에 관한 모든 것이 단순합니다. 멤버가 이름 하나만 기억하면 되는데, 그게 봇이 쓰이느냐 마느냐의 대부분입니다. 제한은 분명합니다. 작은 일 하나 때문에 관리자 권한이 필요한 봇은, 그 권한을 나머지 전부에 대해서도 갖게 됩니다.
대상으로 나누기 (공개용 + 관리용) 복잡함을 꾸준히 값하는 유일한 분리입니다. 멤버가 말을 거는 봇은 권한이 필요 없고, 삭제하고 설정을 바꾸는 봇은 멤버가 말을 걸 일이 아예 없습니다. 위험한 권한을 바깥 사람과 상호작용하지 않는 계정에 몰아 둘 수 있습니다. 이름을 확실히 구분해 두어야 합니다. 비슷한 이름의 봇 둘이 한 방에 있으면 누군가는 엉뚱한 쪽에 명령을 보냅니다.
제공처가 다른 봇 셋 각자 자기 일에서 확실히 제일 낫고 서로 건드리는 영역이 다를 때는 할 만합니다. 이미 가진 봇이 그 일의 80%를 한다면 참는 편이 낫습니다. 각각이 별개의 장애입니다. 조용한 화요일에 환영 기능만 멈추면, 어느 서비스가 죽었는지 모른 채 문의에 답해야 합니다. 겹치는 부분이 눈에 보이는 문제를 만듭니다 — 봇 둘이 같이 인사하고, 같이 링크를 거르고, 같은 명령에 같이 답합니다. 어느 봇이 뭘 하는지 다른 관리자도 읽을 수 있는 곳에 적어 두세요. 두 달이면 아무도 기억 못 합니다.
서로 엮여 이어지기 자동화의 사슬이 필요할 때만. 가장 부서지기 쉬운 구성입니다. 첫 단계의 고장이 마지막 단계의 침묵으로 나타나는데, 침묵은 추적하기 가장 어려운 증상입니다. 멤버에게는 사슬이 보이지 않습니다. 그냥 그 일이 안 일어난 것이고, 특정 서비스가 아니라 이 그룹을 탓하게 됩니다. 만들 거라면 단계마다 무언가 말하게 하세요. 눈에 보이는 확인 한 줄이 "아무 일도 없었다"를 추적 가능한 지점으로 바꿔 줍니다. 그리고 사람이 손으로 하는 경로를 남겨 두세요. 돈이나 접근 권한이 걸린 것은 고장 난 날 사람이 대신할 방법이 있어야 합니다.

정리하면 두 번째 봇은 기능을 늘리려고가 아니라 누가 말을 거는지를 나누려고 추가합니다.

어느 봇이 한 일인지 찾아내기

한 방에 봇이 둘 이상이면 실무에서 필요한 기술은 누가 했는지 가려내는 것입니다. 그룹의 최근 활동 기록에 무엇이 삭제·고정·임명·변경됐는지와 누가 했는지가 남습니다. 봇도 포함해서요. 이 질문에 확실히 답해 주는 곳은 거기뿐입니다.

문의가 들어오면 어느 봇이 무슨 설정이었는지 따져 보기 전에 기록부터 읽는 편이 낫습니다. 설정은 의도를 말하고 기록은 실제 일어난 일을 말하는데, 길어지는 관리 논쟁은 전부 그 둘 사이의 틈에서 벌어집니다.

안 쓰게 된 봇은 내보내세요

방치된 봇은 받았던 권한을 그대로 들고 있습니다. 내가 더 이상 따라가지 않는 서비스가 운영하는 채로, 내 멤버들이 있는 방 안에서요. 이건 정리정돈이 아니라 아무도 안 보는 계정을 닫는 일입니다.

봇을 늘리기 전에 밟을 순서

  1. 지금 있는 봇이 몇 %를 하는지 봅니다

    80%를 이미 한다면 두 번째 봇은 대체로 손해입니다.

  2. 나눌 거라면 기능이 아니라 대상으로 나눕니다

    멤버가 말을 거는 봇과 권한을 가진 봇을 분리하는 것, 이 한 가지가 값을 합니다.

  3. 이름을 확실히 구분합니다

    비슷한 이름 둘이 한 방에 있으면 누군가 엉뚱한 쪽에 명령을 보냅니다.

  4. 어느 봇이 무엇을 하는지 적어 둡니다

    다른 관리자도 읽을 수 있는 곳에. 두 달이면 아무도 기억하지 못합니다.

  5. 문제가 생기면 설정이 아니라 기록을 봅니다

    설정은 의도이고 기록은 사실입니다. 논쟁은 그 사이에서 길어집니다.

  6. 안 쓰는 봇은 바로 내보냅니다

    권한을 들고 남아 있는 계정은 아무도 지켜보지 않는 문입니다.

함께 읽으면 좋은 글

menu_book 이어서 읽어 보세요

숨은 꿀팁 추천

전체 보기
목록