← 모든 글

자동화가 사람보다 느렸던 세 번의 사건

자동화는 항상 옳지 않다. 직접 겪은 실패 세 가지와 그 이후 판단 기준.

자동화를 믿었다가 세 번 크게 당했다. 지금은 먼저 계산기를 꺼낸다. 이 자동화가 절약하는 시간보다 만드는 데 드는 시간이 더 짧나, 라고.

슬랙 알림 봇이 놓친 새벽 장애

재작년 새벽 2시. 서비스 DB 커넥션이 포화됐는데 알림이 안 왔다. 직접 확인해보니 봇 자체가 죽어 있었다.

  • Prometheus → Alertmanager → 슬랙 웹훅으로 이어지는 3단 파이프라인을 구성했는데, Alertmanager 파드가 OOM으로 내려갔다. 알림을 보내야 하는 프로세스가 먼저 죽으면 아무것도 오지 않는다. 당연한 말인데 실제로 겪기 전엔 느낌이 없었다.
  • 당직자가 우연히 새벽에 화장실 가다가 폰 보고 발견했다. 자동화가 살린 게 아니라 사람이 살렸다. 그 후 on-call 로테이션에 15분 주기 수동 핑 체크를 다시 넣었다. “퇴행이냐”는 말도 나왔는데, 저는 그 말을 무시했다.
  • 파이프라인이 복잡할수록 장애 전파 경로도 복잡해진다. 모니터링 시스템은 최대한 단순하게, 의존성 적게가 지금 기준이다.

배포 스크립트가 prod를 날린 날

“환경변수 하나만 바꾸면 스테이징이랑 프로덕션 둘 다 쓸 수 있어”라는 판단이 재앙의 씨앗이었다. 자동화 스크립트에 ENV=prod 한 줄을 잘못 넣었고, 스테이징 배포 도중 프로덕션 DB 마이그레이션이 실행됐다.

  • 피해 규모는 컬럼 하나 DROP. 다행히 백업에서 30분 안에 복구했는데, 그 30분 동안 서비스는 완전 멈춤이었다. 손으로 배포하던 때는 배포 전 환경 확인을 사람이 눈으로 했다. 스크립트는 눈이 없다.
  • 이후 배포 스크립트에 dry-run 출력을 필수로 넣고, 프로덕션 배포는 CI 파이프라인에서 수동 approve 단계를 추가했다. 자동화를 보완하는 데 자동화를 쓴 게 아니라, 자동화 중간에 사람을 다시 집어넣었다.
  • 스크립트 짜면서 “이 정도는 안전하겠지”라고 넘어간 순간이 정확히 사고 원인이 됐다. 그 직감을 이제는 경고 신호로 읽는다.

리포트 자동화에 3주를 쓴 뒤 알게 된 것

매주 월요일 오전에 지표 슬라이드를 만드는 게 귀찮았다. Sheets API + Python + 슬랙 게시 자동화를 만드는 데 총 3주가 들었다.

  • 실제로 슬라이드 만드는 데 걸리는 시간은 주당 25분이었다. 1년 치로 계산하면 1,300분, 약 22시간. 3주 개발 공수는 어림잡아 60~70시간. 손익분기를 넘으려면 3년 넘게 써야 했다.
  • 게다가 Sheets API 인증 토큰이 6개월마다 만료되고, 슬랙 API 스펙도 한 번 바뀌어서 두 번 고쳤다. 유지보수 공수가 원래 계산에 없었다. 처음부터 그냥 사람이 만드는 게 맞았다.
  • 지금은 자동화 착수 전에 “주당 절약 시간 × 52 < 개발+유지보수 공수” 이면 보류한다. 계산 자체가 30초도 안 걸리는데, 이걸 안 하고 시작했다는 게 지금 봐도 어이없다.

자동 리뷰 봇이 PR을 망친 방식

코드 리뷰 속도가 문제라서 GPT 기반 자동 코멘트 봇을 붙였다. 이틀 만에 끄게 됐다.

  • 봇이 PR 하나에 평균 14개 코멘트를 달았다. 팀원들이 진짜 리뷰 코멘트가 뭔지 모르겠다고 했다. 신호 대 잡음 비율이 무너졌고, 결국 사람 리뷰어들이 “봇 코멘트 처리 먼저”라는 심리 부담을 갖게 됐다.
  • 리뷰 사이클이 오히려 느려졌다. 봇 없을 때 평균 4시간이던 PR 머지 시간이 봇 붙이고 나서 7시간으로 늘었다. 2주치 데이터 보고 바로 껐다.
  • 자동화가 사람의 판단을 대체하려 하면 사람이 위축된다는 걸 그때 실감했다. 보조 도구가 주인공이 되면 팀 전체가 도구의 리듬에 끌려간다.

언제 자동화하지 않을지 기준

실패를 반복하다 보니 판단 기준이 생겼다. 완벽한 공식은 아니고, 그냥 지금 내가 쓰는 체크리스트다.

  • 수작업 빈도가 주 1회 미만이면 자동화를 보류한다. 익숙하지 않은 흐름을 스크립트로 굳히면 나중에 뭐가 어디서 돌아가는지 감이 없어진다. 특히 사람이 자주 안 보는 경로에 버그가 숨는다.
  • 자동화 실패 시 사람이 즉시 감지할 수 있는가를 먼저 확인한다. 알림 파이프라인 사건처럼, 자동화가 조용히 죽으면 아무도 모른다. 자동화를 믿으려면 자동화 감시부터 붙여야 하고, 그 비용을 처음 계산에 넣어야 한다.
  • 반복 횟수가 적고 판단이 필요한 일은 그냥 손으로 한다. 자동화는 판단 없이 반복되는 일에만 유효하다.

다음 한 가지

다음 자동화 착수 전, 공수 손익 계산을 PR description에 한 줄 적고 팀이 보는 채널에 먼저 올린다.


🛒 이 글과 어울리는 추천 상품

위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.