무인 자동화 안전장치 설계

업무 자동화5분 읽기

자동화 시스템의 성패는 정상 경로가 아니라 실패 경로에서 갈립니다. 데모에서는 누구나 잘 돌아갑니다. 문제는 새벽 세 시에 네트워크가 잠깐 끊기고 메신저가 업데이트되고 자동화 대상 프로그램이 얼어붙을 때입니다. 사람이 지켜보는 시스템이라면 재시작하면 그만이지만 무인 자동화는 그 순간에도 스스로 살아나야 합니다. 24시간 주문을 처리하는 무인 시스템을 구축하고 운영하며 정착시킨 안전장치들을 정리합니다.

무인 자동화의 실패는 세 층에서 온다

안전장치를 설계하려면 먼저 무엇이 실패하는지를 나눠야 합니다. 운영에서 만난 실패는 세 층으로 정리됩니다.

실패 층예시필요한 안전장치
통신네트워크 순단, 서버 일시 장애재시도, 로컬 버퍼, 멱등키
의존 프로그램메신저·자동화 대상의 멈춤, 업데이트자가치유, 워치독, 자동 재시작
자기 자신상주 프로세스 크래시슈퍼바이저, 헬스 모니터

층마다 성격이 다르므로 하나의 만능 장치로는 못 막습니다. 각각을 살펴보겠습니다.

통신 실패: 기록은 잃어버리지 않는다

가장 흔한 실패는 통신입니다. 처리 결과를 장부 서버로 보내는 순간 네트워크가 끊기면 어떻게 될까요. 나쁜 시스템은 그 기록을 조용히 잃어버리고 며칠 뒤 정산에서 구멍으로 발견됩니다.

우리 설계의 원칙은 "전송 실패는 지연이지 유실이 아니다"입니다. 전송에 실패한 기록은 로컬 버퍼에 쌓이고 통신이 복구되면 자동으로 재전송됩니다. 실제 운영에서 네트워크 장애로 밀린 기록이 수십 분 뒤 자동 재전송으로 그대로 복구된 사례가 있습니다. 사람은 장애가 있었다는 사실조차 사후 로그로 알았습니다.

재전송에는 짝이 필요합니다. 바로 멱등키입니다. 같은 기록이 두 번 전송돼도 서버가 한 번만 반영하도록, 모든 기록에 고유 식별자를 붙였습니다. 버퍼와 멱등키가 짝을 이루면 "잃어버리지도, 두 번 적지도 않는" 전송이 됩니다. 이 설계는 중복 없는 멱등성 설계에서 따로 다룹니다.

한 가지 실전 교훈을 덧붙이면, 통신 경로 자체의 함정도 있었습니다. 시스템에 설정된 프록시가 죽어 있는데 전송 라이브러리가 그 프록시를 따라가면서 장부 전송만 조용히 실패한 사례입니다. 원인을 잡은 뒤 핵심 전송은 시스템 프록시 설정을 무시하고 직결하도록 고정했습니다. 무인 시스템의 통신은 환경에 좌우되는 요소를 최대한 줄여야 합니다.

의존 프로그램: 스스로 고치고, 다시 세운다

무인 자동화는 보통 다른 프로그램 위에 올라탑니다. 메신저 클라이언트, 자동화 대상 앱, 브라우저 같은 것들입니다. 이들은 우리가 통제할 수 없이 멈추고 업데이트되고 이상 상태에 빠집니다.

대응은 두 가지입니다. 첫째, 자가치유입니다. 메신저 감지 통로가 끊기면 시스템이 이를 감지해 메신저를 재기동하고 통로를 다시 연결합니다. 둘째, 워치독입니다. 자동화 대상 프로그램이 일정 시간 유휴 상태거나 홈 화면 같은 예외 상태에 빠지면 자동으로 재시작해 정상 흐름으로 되돌립니다. 두 장치 모두 "새벽에 사람 깨우지 않기"가 존재 이유입니다.

여기서 중요한 설계 감각은, 복구 실패를 숨기지 않는 것입니다. 자가치유가 몇 번 시도 후에도 실패하면 시스템은 조용히 재시도를 반복하는 대신 알림을 보내고 해당 흐름을 멈춥니다. 무한 재시도는 장애를 가리는 가장 흔한 방법입니다.

자기 자신: 상주 프로세스도 죽는다

마지막 층은 자동화 프로세스 자신입니다. 아무리 잘 짠 코드도 크래시합니다. 우리는 상주 프로세스를 슈퍼바이저 아래 두어 비정상 종료 시 몇 초 뒤 자동으로 다시 시작되게 했습니다. 처리 중이던 작업은 멱등 설계 덕에 재시작 후 이어서 처리해도 중복이 생기지 않습니다.

그리고 이 모든 것을 사람이 볼 수 있어야 합니다. 우리는 웹 운영 콘솔을 함께 만들어 서비스 시작·중지, 실행 로그, 처리 기록, 설정 변경을 원격에서 다루게 했습니다. 안전장치가 아무리 자동이어도, 최종 안전장치는 "상황을 한눈에 보고 개입할 수 있는 사람"이기 때문입니다. 애매한 판정을 사람에게 넘기는 승인 게이트도 같은 철학인데, 이는 RPA 사람 승인 게이트에서 자세히 다룹니다.

무인 자동화 안전장치 체크리스트

우리가 운영에서 검증한 목록을 정리하면 이렇습니다.

이 안전장치들이 실제로 어떤 시스템을 지키고 있는지는 카카오톡 주문 자동화 사례에서 볼 수 있습니다. 상주 RPA의 운영 구조 전반은 데스크톱 RPA 안정 운영에서 이어집니다.

자주 묻는 질문

무인 자동화에서 가장 먼저 갖춰야 할 안전장치는 무엇인가요?

기록을 잃지 않는 장치입니다. 전송 실패를 로컬 버퍼에 보관했다가 자동 재전송하는 구조와 재전송이 중복을 만들지 않게 하는 멱등키가 짝을 이뤄야 합니다. 처리 흐름의 복구는 그다음입니다. 데이터 유실은 복구가 불가능하지만 처리 중단은 재개하면 되기 때문입니다.

자동 복구가 실패하면 어떻게 되나요?

알림을 보내고 멈추는 것이 정답입니다. 복구 실패를 숨긴 채 무한 재시도하면 장애가 며칠씩 가려집니다. 몇 회의 복구 시도 후에는 사람에게 상황을 알리고 해당 흐름을 정지시켜 잘못된 상태로 계속 처리되는 것을 막아야 합니다.

사람이 완전히 필요 없어지나요?

아니요, 역할이 바뀝니다. 건별 처리는 시스템이 하고 사람은 애매한 건의 승인과 이상 상황 개입만 맡습니다. 그래서 무인 자동화에는 원격 콘솔과 알림 채널이 필수입니다. 사람의 개입 비용을 "현장 출동"에서 "버튼 클릭"으로 줄이는 것이 실제 목표입니다.

이런 안전장치는 개발 비용을 얼마나 늘리나요?

체감상 자동화 로직 자체와 비슷한 규모의 공수가 들어가지만 무인 운영이 목적이라면 선택지가 아닙니다. 안전장치 없는 자동화는 결국 사람이 지켜보는 자동화가 되고 그 인건비가 개발비 절감분을 금방 넘어섭니다. 무인이라는 요구사항 자체가 안전장치를 포함한 견적이어야 합니다.

#무인자동화#안전장치#자동복구#운영설계

업무자동화 구축이 필요하신가요?

무료 상담 신청