Showing Posts From
미팅
- 05 Dec, 2025
포스트모템 미팅, 누군가는 울었다
포스트모템 미팅, 누군가는 울었다 새벽 3시 장애 알람 휴대폰이 울렸다. 새벽 3시. 슬랙 알람 22개. 결제 시스템 다운. 일어나서 노트북 켰다. 남편이 물 한 잔 갖다줬다. "또야?" 고개만 끄덕였다. 모니터링 보니 최악이다. 결제 실패율 100%. 30분째 지속 중. 고객센터 폭발하고 있다. 개발팀 리드한테 전화했다. "지금 보고 있어요." 목소리가 떨린다. 데이터베이스 커넥션 풀 고갈. 누군가 쿼리를 잘못 날렸다. 롤백하는 데 1시간 걸렸다. 새벽 4시 30분 복구. 피해액 추산 시작. 30분간 결제 못한 건수 1,247건. 추정 매출 손실 8,500만원. 침대로 돌아갔다. 잠은 안 온다. 내일 포스트모템 해야 한다.회의실 예약, 금요일 오후 3시 목요일 아침에 공지했다. "금요일 3시, 장애 포스트모템" 참석자 12명. 개발팀 5명, QA팀 3명, 기획 2명, 인프라 2명. 준비할 게 많다. 타임라인 정리. 로그 분석. 영향도 산정. 근본 원인 파악. 수요일부터 자료 모았다. 목요일 저녁까지 정리했다. 슬라이드 32장. 중요한 건 톤이다. 누굴 탓하는 미팅이 아니다. 시스템을 고치는 미팅이다. 그게 내 역할이다.회의실, 무거운 공기 금요일 오후 3시. 다들 들어왔다. 표정이 무겁다. 특히 민수. 2년차 백엔드 개발자. 그 쿼리 짠 사람. 자리에 앉는데 손이 떨린다. 얼굴이 창백하다. 전날 밤 못 잤을 거다. 나도 그랬으니까. 5년 전 내가 놓친 버그로 장애 났을 때. 팀장한테 혼날까봐 화장실서 울었다. 회의 시작했다. "장애 포스트모템 시작하겠습니다." "이 자리의 목적은 한 가지입니다." "재발 방지." 민수가 고개 숙였다. "누굴 탓하는 자리 아닙니다." "시스템 문제를 찾는 자리입니다." 목소리 톤 신경 썼다. 단호하지만 따뜻하게. 타임라인, 차근차근 화면에 타임라인 띄웠다. 시간 순서대로 정리한 것. 22:15 - 신규 기능 배포 22:47 - 첫 슬로우 쿼리 발생 01:23 - 커넥션 풀 60% 사용 02:38 - 커넥션 풀 95% 도달 03:02 - 완전 고갈, 서비스 다운 04:32 - 롤백 완료, 서비스 복구 "보시면 배포 후 4시간 30분 뒤 장애입니다." "슬로우 쿼리는 2시간 전부터 감지됐습니다." 인프라 팀장이 끄덕였다. "모니터링에 안 걸렸어요?" "임계치가 80%였습니다." "95% 되고 나서야 알람 갔습니다." 첫 번째 문제점. 알람 기준이 너무 높다. 근본 원인, 하나가 아니다 민수가 손 들었다. "제가 쿼리를 잘못 짰습니다." 목소리가 떨린다. "인덱스 안 태운 게..." 끊었다. "민수씨, 잠깐만요." 화이트보드에 썼다. 근본 원인 분석 (5 Whys) "왜 장애가 났습니까?" "쿼리가 느렸다." "왜 쿼리가 느렸습니까?" "인덱스를 안 탔다." "왜 인덱스를 안 탔습니까?" "개발 단계에서 확인 안 했다." "왜 확인 안 했습니까?" "쿼리 성능 리뷰 프로세스가 없었다." "왜 프로세스가 없었습니까?" 침묵. 민수 쪽 안 봤다. 화이트보드만 봤다. "이건 개인 실수가 아닙니다." "시스템 구멍입니다."누군가 울 것 같은 순간 영향도 설명했다. "30분 동안 결제 불가" "1,247건 실패" "고객 272명 이탈" "추정 손실 8,500만원" 숫자 말할 때마다. 민수 얼굴이 구겨진다. 기획팀 차장이 말했다. "이거 누가 책임지나요?" 목소리에 날이 섰다. 분위기 싸해졌다. 민수가 고개 더 숙였다. 여기서 내가 안 나서면. 이 미팅은 마녀사냥 된다. "책임은 제가 집니다." 확실하게 말했다. "QA 팀장으로서." "배포 승인은 제가 했습니다." "쿼리 성능 검증 프로세스 없던 것도 제 책임입니다." 기획 차장 쳐다봤다. "민수씨 혼자 문제가 아닙니다." "우리 시스템 전체 문제입니다." 민수가 고개 들었다. 눈이 빨갛다. 재발 방지, 구체적으로 화이트보드에 적었다. Action Items 1. 쿼리 성능 리뷰 프로세스모든 신규 쿼리 explain 분석 필수 데이터베이스 팀 리뷰 후 배포 담당: 민수 + DBA팀 기한: 2주민수한테 물었다. "민수씨, 이거 같이 만들어볼래요?" "네." 목소리 나왔다. 2. 모니터링 개선커넥션 풀 알람 임계치 80% → 60% 슬로우 쿼리 5초 이상 즉시 알람 담당: 인프라팀 기한: 1주3. 스테이징 환경 강화프로덕션 데이터 규모 반영 부하 테스트 시나리오 추가 담당: QA팀 + 인프라팀 기한: 3주4. 배포 체크리스트 업데이트쿼리 성능 검증 항목 추가 롤백 계획 사전 수립 담당: QA팀 기한: 1주하나씩 설명했다. 누가 뭘 언제까지. 구체적으로. "이거 하면 막을 수 있었나요?" 개발팀 리드가 물었다. "네." "최소한 스테이징에서 잡았을 겁니다." 포스트모템은 학습이다 마무리했다. "이번 장애로 배운 것" 화이트보드에 적었다.개인 실수는 없다. 시스템 구멍만 있다. 모니터링은 예측 가능해야 한다. 프로세스가 사람을 지킨다."민수씨 실수 아닙니다." "우리가 만든 환경이 실수하기 쉬웠던 겁니다." 팀원들 고개 끄덕였다. "이제 우리가 할 일은" "실수해도 괜찮은 시스템 만드는 겁니다." 민수가 손 들었다. "저..." 목소리 떨린다. "다음부터 쿼리 짤 때" "인덱스 두 번 확인하겠습니다." "그리고..." 말 끊겼다. "죄송합니다." 고개 숙였다. 어깨가 떨린다. 울고 있다. 회의 후, 복도에서 회의 끝났다. 다들 나갔다. 민수만 남았다. 자리에 앉아 있다. 고개 숙인 채. 다가갔다. "민수씨." 고개 들었다. 눈 빨갛다. "괜찮아요." "팀장님..." "제가 큰일 낸 거 아닌가요?" 앉았다. 옆자리에. "5년 전에요." "제가 UI 버그 하나 못 잡았어요." "그게 배포됐고." "회원가입 안 됐어요. 이틀 동안." "진짜요?" "네." "그때 팀장님이 그러시더라고요." "포스트모템은 처벌이 아니라 학습이라고." "배웠어요?" "많이." "그래서 지금 팀장 하는 거예요." 민수가 웃었다. 눈물 닦으면서. "민수씨가 쿼리 성능 리뷰 프로세스 만들면" "이 회사에서 그 전문가 되는 거예요." "할 수 있을까요?" "할 수 있어요." "제가 도와줄게요." 자리에서 일어났다. "오늘 일찍 가요." "맥주나 한잔 하고." "네, 팀장님." 저녁, 집으로 퇴근길. 피곤했다. 근데 기분은 나쁘지 않다. 포스트모템 잘 끝났다. 누구도 상처받지 않았다. 액션 아이템 명확하다. 다들 책임감 생겼다. 이게 리더의 일이다. 장애는 막을 수 없다. 완벽한 시스템은 없다. 실수는 반드시 생긴다. 중요한 건. 그 후에 뭘 배우느냐. 그리고. 팀이 함께 배우느냐. 집 도착했다. 현관문 열었다. "엄마!" 딸이 뛰어온다. 안아줬다. "오늘 어땠어?" "좋았어!" 좋았으면 됐다. 저녁 먹으면서 남편한테 말했다. "오늘 포스트모템 했어." "어땠어?" "누가 울었어." "니가?" "아니, 후배." "왜?" "자기 탓인 줄 알았대." "근데 아니라고 했지." "착하네." "착한 게 아니라 사실이야." "시스템 문제니까." 설거지하면서 생각했다. 13년 하면서 배운 것. 품질은 개인이 아니라 시스템이다. 리더는 사람을 탓하는 게 아니라. 시스템을 고친다. 그리고. 팀원을 지킨다. 월요일 아침, 슬랙 메시지 주말 지나고. 월요일 아침. 민수한테 슬랙 왔다. "팀장님, 쿼리 성능 리뷰 가이드 초안 작성했습니다." "확인 부탁드려요." 문서 열었다. 20페이지. 주말에 작성한 거다.인덱스 체크리스트 Explain 분석 방법 슬로우 쿼리 판단 기준 데이터베이스 팀 리뷰 프로세스꼼꼼하다. 예시까지 달았다. 답장 보냈다. "민수씨 대단한데요?" "이거 전사 표준으로 만들어요." "감사합니다 팀장님." 웃었다. 혼자. 장애는 팀을 무너뜨릴 수도 있고. 더 강하게 만들 수도 있다. 차이는 리더가 만든다. 오전 회의 들어갔다. CTO가 물었다. "지난주 장애 포스트모템 어땠나요?" "좋았습니다." "재발 방지책 4개 나왔고요." "팀원 한 명이 전문가 됐습니다." "전문가?" "쿼리 성능 리뷰 프로세스 만들고 있습니다." "전사 표준으로 제안하려고요." CTO가 끄덕였다. "좋네요." 회의 끝나고 자리 돌아왔다. 커피 마셨다. 포스트모템은 쉽지 않다. 누군가는 운다. 누군가는 방어한다. 누군가는 회피한다. 근데 제대로 하면. 팀은 강해진다. 그게 내가 13년 배운 것이다.누군가 울었지만, 팀은 더 단단해졌다. 포스트모템은 처벌이 아니라 학습이다.