자동화는 반드시 잘못 실행된다
메일 300통이 잘못 발송됐습니다. 주문 상태가 전부 "취소"로 바뀌었습니다. 파일 2천 개가 엉뚱한 폴더로 갔습니다.
자동화의 위험은 실패 자체가 아니라 속도입니다. 사람이 실수하면 한 건이고, 자동화가 실수하면 전 건입니다.
그래서 이 실험실의 마지막 주제는 새 자동화를 만드는 법이 아니라, 잘못됐을 때 되돌리는 법입니다.
되돌릴 수 있는 것과 없는 것
설계 전에 이 구분부터 합니다.
되돌릴 수 있는 동작 — 파일 이동, 상태 변경, 라벨 추가, 내부 데이터 수정. 기록만 있으면 원복됩니다.
되돌릴 수 없는 동작 — 외부로 나간 것. 발송된 메일, 전송된 결제, 게시된 글, 삭제된 데이터, 외부 시스템에 전달된 주문.
되돌릴 수 없는 동작에는 반드시 사람 승인이 붙어야 합니다. 앞선 핸드오프 글의 원칙이고, 여기서 가장 무겁게 적용됩니다. 예외를 두지 마세요.
안전장치 다섯 가지
1. 드라이런 모드
실제 실행 없이 "무엇을 할 예정인지"만 출력하는 모드. 모든 자동화에 만들어두세요.
새 규칙을 넣거나 조건을 바꿨을 때 드라이런으로 먼저 돌려보면, 영향 범위를 사고 전에 알 수 있습니다. "이 조건이면 342건이 처리됩니다"를 보고 "그렇게 많을 리가 없는데"라고 알아채는 순간이 이 기능의 가치입니다.
2. 처리 건수 상한
한 번 실행에서 처리할 수 있는 최대 건수를 정합니다. 평소 하루 30건인 흐름이 갑자기 3천 건을 처리하려 하면 멈추고 알립니다.
대량 사고의 대부분이 이 한 줄로 막힙니다. 조건 실수나 데이터 오류는 대개 "전부"를 대상으로 만들기 때문입니다.
3. 변경 이력
무엇을 어떻게 바꿨는지 남깁니다. 이전 값과 이후 값, 대상 ID, 시각.
이게 있으면 원복이 가능합니다. 없으면 백업에서 복원하는 수밖에 없고, 그러면 그동안의 정상 작업까지 날아갑니다.
4. 원복 스크립트
변경 이력을 읽어 되돌리는 스크립트를 자동화와 함께 만듭니다. 사고 난 뒤에 만들면 이미 늦습니다.
원복 스크립트도 드라이런을 지원해야 합니다.
5. 단계적 확대
새 자동화는 처음부터 전체에 적용하지 않습니다.
- 드라이런으로 영향 범위 확인
- 10건에만 적용, 결과 확인
- 하루치에 적용
- 전체 적용
건너뛰고 싶은 유혹이 크고, 건너뛴 곳에서 사고가 납니다.
사고가 났을 때의 순서
1. 멈춥니다. 원인 분석보다 먼저입니다. 스케줄을 끄고 실행 중인 작업을 중단합니다. 분석하는 동안 계속 돌면 피해가 커집니다.
2. 범위를 파악합니다. 몇 건이, 언제부터, 무엇이 바뀌었는가. 변경 이력이 있으면 몇 분입니다.
3. 되돌릴 수 있는 것부터 되돌립니다. 내부 데이터 변경은 원복 스크립트로.
4. 되돌릴 수 없는 것은 알립니다. 잘못 나간 메일은 회수할 수 없습니다. 대신 정정 안내를 보냅니다. 숨기는 것이 언제나 더 나쁩니다.
5. 원인을 찾고 방지책을 넣습니다. 같은 사고가 다시 나지 않게.
6. 다시 켤 때는 단계적으로. 바로 전체 재개하지 마세요.
기록해야 할 것
사고 후 남길 내용은 짧아도 됩니다.
- 무슨 일이 일어났는가
- 언제 발생하고 언제 발견됐는가 — 이 간격이 관측 구조의 성적표입니다
- 몇 건이 영향받았는가
- 어떻게 복구했는가
- 무엇을 바꿔서 재발을 막았는가
두 번째 항목이 특히 중요합니다. 발생과 발견 사이가 몇 주라면, 자동화 문제가 아니라 앞선 알림 글에서 다룬 침묵 감지가 없는 것입니다.
실험 결과 요약
- 처리 건수 상한 한 줄이 대량 사고 두 건을 막았습니다
- 드라이런을 습관화하자 조건 실수를 실행 전에 발견하게 됐습니다
- 원복 스크립트를 사고 후에 만들려 했을 때, 복구에 하루가 걸렸습니다. 미리 만든 뒤에는 20분이었습니다
- 되돌릴 수 없는 동작에 승인을 붙인 뒤 대외 사고가 사라졌습니다
정리
- 자동화의 위험은 실패가 아니라 속도입니다. 사람은 한 건, 자동화는 전 건입니다.
- 되돌릴 수 없는 동작 — 외부로 나가는 모든 것 — 에는 예외 없이 사람 승인을 붙이세요.
- 드라이런, 처리 건수 상한, 변경 이력, 원복 스크립트, 단계적 확대. 다섯 개를 기본으로.
- 사고 시 순서: 멈추고 → 범위 파악 → 되돌리고 → 알리고 → 원인 → 단계적 재개.
- 발생과 발견 사이의 간격이 관측 구조의 성적표입니다.
이것으로 업무 자동화 실험실 10편을 마칩니다. 관통하는 원칙은 하나였습니다. 자동화의 가치는 얼마나 많이 자동화했는가가 아니라, 얼마나 안전하게 되돌릴 수 있는가에서 나옵니다.

