홈
메인

자동화 봇이 충돌할 때, 먼저 확인할 것은 운영 책임이다

한 자동화 봇의 기록에 같은 오류가 되풀이된다. 다른 요청이 이미 메시지를 가져가고 있어 현재 요청이 종료됐다는 내용이다. 곧이어 오류 처리 담당이 등록되지 않았다는 기록도 남는다. 작은 장애처럼 보이지만, 여기에는 자동화 운영의 빈틈이 압축돼 있다.
우리는 자동화를 도입할 때 “무엇을 대신하게 할까”를 먼저 묻는다. 그런데 정작 운영이 시작되면 더 중요한 질문이 남는다. 이 일을 누가 한 번만 실행하고, 멈췄을 때 누가 알아차리는가?

충돌은 기술에서 시작해 운영에서 커진다

텔레그램 봇은 메시지를 가져오는 방식으로 주기적 조회와 웹훅을 제공한다. 공식 문서는 두 방식을 동시에 쓸 수 없다고 설명한다. 이번 기록의 문구는 동일한 봇에 대한 조회 요청이 서로 충돌했음을 알려준다. 다만 기록만으로 어느 컴퓨터의 어떤 프로그램이 두 번째 요청을 보냈는지는 알 수 없다.
원인은 여러 갈래일 수 있다. 개발용 프로그램을 끄지 않은 채 운영용 프로그램을 띄웠을 수도 있다. 서버를 교체하면서 이전 실행이 남았을 수도 있다. 자동 재시작 설정이 새 실행과 겹쳤을 가능성도 있다. 여기서 필요한 일은 성급히 범인을 지목하는 것이 아니라, 실행 경로를 하나씩 확인하는 것이다.
중소기업의 자동화에서는 이런 장면이 낯설지 않다. 시범 운영은 담당자 개인 컴퓨터에서 시작하고, 이후 서버나 외부 서비스로 옮긴다. 업무는 계속 돌아가니 이전 경로를 정리할 시간을 놓친다. 어느 날 문제가 생기면 서로 “나는 실행하지 않았다”고 말한다. 시스템이 복잡해서라기보다 운영 주체가 보이지 않아서 생기는 혼선이다.

오류를 남기는 것과 알아차리는 것은 다르다

기록에는 오류 처리 함수가 등록되지 않았다는 메시지도 보인다. 파이썬 텔레그램 봇 라이브러리는 오류 처리 함수를 등록하는 기능을 제공한다. 그러나 오류 처리 기능을 추가해도 중복 실행 자체가 해결되는 것은 아니다. 충돌을 멈추는 조치와 충돌을 감지해 알리는 조치는 각각 필요하다.
구글의 SRE 문서는 시스템 내부 지표를 보는 점검과 사용자가 실제로 서비스를 이용할 수 있는지 확인하는 점검을 구분한다. 이 구분은 규모가 작은 회사에도 유용하다. 로그가 남아 있다는 사실만으로 고객 문의가 접수됐는지, 주문 알림이 도착했는지 알 수는 없다.
대표와 관리자는 기술 용어를 모두 이해할 필요가 없다. 대신 자동화가 맡은 업무의 결과를 확인해야 한다. 정해진 시간에 알림이 도착했는가. 처리 대기 건수가 평소와 다르게 늘었는가. 실패했을 때 담당자에게 신호가 갔는가. 이 세 가지가 보이지 않으면 자동화는 편리한 도구이면서 동시에 조용한 업무 공백이 된다.

소유자를 한 명으로 정하고, 실행 경로를 적어두자

구글의 장애 대응 원칙은 누가 지휘하고, 누가 시스템을 수정하며, 누가 상황을 알릴지 명확히 하라고 권한다. 작은 조직에 별도 대응 조직을 만들 필요는 없다. 한 사람이 여러 역할을 맡아도 좋다. 중요한 것은 장애가 났을 때 모두가 동시에 설정을 바꾸거나, 반대로 아무도 손대지 않는 상황을 피하는 것이다.
먼저 자동화마다 짧은 운영 카드를 만들자. 기술 문서보다 업무 인수인계서에 가깝게 쓰면 된다.
•
이 봇이 맡는 업무와 정상 결과는 무엇인가?
•
현재 실행 중인 장소와 시작 방법은 무엇인가?
•
실행 상태를 바꿀 수 있는 담당자는 누구인가?
•
실패를 확인하는 신호와 연락받을 사람은 누구인가?
•
중단 시 수작업으로 이어갈 방법은 무엇인가?
이번과 같은 충돌이라면 담당자는 실행 중인 경로를 확인하고, 중복된 요청을 정리한 뒤, 실제 메시지가 다시 들어오는지 시험해야 한다. 오류 문구가 사라졌다는 이유만으로 복구를 선언해서는 안 된다. 업무 결과까지 확인해야 운영이 정상으로 돌아왔다고 말할 수 있다.
마지막으로 변경 이력을 남기자. 언제 어디서 봇을 시작하고 중단했는지, 어떤 설정을 바꿨는지 기록하면 다음 장애에서 추측할 일이 줄어든다. 한 장의 운영 카드와 짧은 변경 기록은 복잡한 관리 체계보다 먼저 갖춰야 할 기본이다.
자동화의 성패는 실행 버튼을 누른 순간에 결정되지 않는다. 누가 실행을 소유하고, 실패를 발견하며, 업무를 복구하는지 정해질 때 비로소 안정적인 일의 방식이 된다. 우리 조직의 자동화는 지금 누구의 책임 아래 움직이고 있는가?
Kakao Channel