← 모든 글

자동화했더니 더 느려졌다

자동화가 역설적으로 더 오래 걸렸던 실제 경험 — 언제 사람이 더 빠른지

자동화는 ‘하면 좋은 것’이 아니다. 잘못 걸면 사람이 손으로 하는 것보다 느리다. 직접 겪어봤다.

슬랙 알림 봇이 오히려 대응을 늦췄다

에러가 뜨면 슬랙으로 알린다 — 여기까지는 맞는 방향이다. 문제는 알림 조건을 너무 세밀하게 나눠서 채널이 6개로 쪼개진 것.

  • #alert-db, #alert-api, #alert-infra… 채널마다 담당자가 달랐고, 어느 채널에 어떤 에러가 오는지 팀원 절반이 외우지 못했다. 실제로 DB 커넥션 풀 소진 알림이 #alert-infra로 갔을 때, 담당 백엔드 엔지니어가 그 채널을 뮤트해둔 상태였다. 그냥 @channel로 DM 하나 보냈으면 2분 안에 잡혔을 걸, 발견까지 17분 걸렸다.
  • 봇이 메시지를 중복 발송하는 버그가 있어서 팀이 알림 자체를 신뢰 안 했다. 같은 에러가 3번 연속으로 울리면 아무도 반응하지 않는 ‘늑대 소년’ 상태가 됐다. 막상 진짜 장애가 났을 때 첫 알림을 다들 무시했다.

결국 임시로 알림 채널을 하나로 합치고, 심각도 기준만 두 단계로 나눴다. 그게 6채널 자동화보다 빨랐다.

PR 리뷰 자동 할당이 리뷰를 막았다

팀이 커지면서 PR 리뷰어를 자동 할당하는 스크립트를 붙였다. GitHub Actions로 파일 변경 경로를 보고 CODEOWNERS를 참조해서 2명을 골라 할당하는 방식이었다.

  • 스크립트가 최근 2주간 커밋 수 기준으로 ‘활동적인’ 리뷰어를 선택했는데, 마침 두 명이 동시에 휴가였다. 할당은 됐지만 아무도 안 읽었다. PR이 4일 동안 방치됐고, 발견한 건 배포 전날 수동 체크 때였다.
  • 자동 할당이 있으니 내가 굳이 말 안 해도 되겠지 — 라는 심리가 생겼다. 예전엔 슬랙에 “이 PR 좀 봐줄 수 있어요?”라고 직접 물어봤는데, 자동화 이후 그 행동이 사라졌다. 사람 한 명이 슬랙에 핑 한 번 보내는 게 스크립트 열두 줄보다 빠르다는 걸 그때 깨달았다.

배포 승인 워크플로를 자동화했더니 아무도 몰랐다

스테이징 → 프로덕션 배포에 승인 단계를 넣자는 건 맞는 생각이었다. GitHub Environments의 required reviewers 기능을 써서 자동화했다.

  • 첫 달은 잘 됐다. 두 달째부터 승인 요청 이메일을 아무도 안 읽기 시작했다. GitHub 알림이 이미 하루 수십 건씩 쌓이는 팀이었는데, 배포 승인 요청이 거기 묻혔다. 평균 승인 대기 시간이 1시간 40분까지 늘었다.
  • 예전 방식 — 배포 전에 슬랙에 “지금 프로덕션 올립니다, 이상 없으면 답 주세요” — 은 반응이 3분 내로 왔다. 자동화된 승인 워크플로보다 37배 빨랐다. 자동화가 절차를 만들고, 절차가 속도를 죽인 사례였다.

데이터 파이프라인 복구 스크립트가 수동 픽스보다 느렸다

야간 배치가 실패했을 때를 대비해 복구 스크립트를 만들어뒀다. 실패 구간을 감지하고 해당 날짜 범위만 재처리하는 방식.

  • 막상 쓰려니 스크립트가 전제하는 실패 패턴이 실제 장애와 달랐다. 파이프라인이 반쯤 성공한 상태 — 파티션은 있는데 데이터가 비어 있는 — 를 스크립트가 ‘성공’으로 판정했다. 스크립트 결과를 믿고 한 시간을 보낸 뒤에야 직접 쿼리로 확인했고, 그때부터 수동으로 재처리했다.
  • 결국 그 장애는 SQL 두 줄짜리 수동 INSERT로 끝났다. 복구 스크립트를 디버깅하는 시간이 실제 복구 시간보다 길었다. 스크립트를 믿은 것 자체가 지연의 원인이었다.

자동화가 실패하는 공통 패턴

여러 사례를 겪고 나니 공통점이 보였다.

  • 자동화가 ‘예외 없는 정상 경로’만 상정할 때 — 현실 장애는 거의 예외다. 스크립트가 정상 흐름만 빠르게 처리하고, 경계 케이스에서 침묵하거나 오판한다. 팀이 그 침묵을 ‘처리됨’으로 읽는 순간 대응이 늦어진다.
  • 알림·할당·승인을 자동화하면 사람이 직접 커뮤니케이션하는 행동이 줄어든다. 그 행동이 사실 제일 빨랐는데. 자동화가 빠른 사람 행동을 대체하는 게 아니라, 억제하는 쪽으로 작동한 경우가 많았다.
  • 자동화 도구를 유지하는 비용이 묵시적으로 쌓인다. 스크립트를 고치고, 채널 설정을 바꾸고, 예외 케이스를 추가하는 작업이 누군가의 일정을 계속 갉아먹는다. 처음 만들 때 이 비용을 아무도 예산에 넣지 않는다.

다음 한 가지

새 자동화를 붙이기 전에 딱 하나만 물어보기로 했다. “사람이 슬랙에 메시지 하나 보내는 것보다 이게 진짜 빠른가?” — 이 질문에 자신 없으면 일단 멈춘다.


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

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