Showing Posts From
Qa리드
- 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년 배운 것이다.누군가 울었지만, 팀은 더 단단해졌다. 포스트모템은 처벌이 아니라 학습이다.
- 03 Dec, 2025
팀원 1on1에서 '저 퇴사하고 싶어요'라고 들었을 때
목요일 오후 3시 1on1 시간이었다. 민지. 입사 3년차. 우리 팀에서 제일 꼼꼼한 애다. "팀장님, 저 퇴사하고 싶어요." 커피 마시다 말았다.준비한 건 아니었을 거다. 떨리는 목소리였다. "개발자로 전환하고 싶어요. QA는... 미래가 안 보여요." 3년 전 생각났다. 아니, 10년 전. 나도 똑같은 말 했었지. 예상했어야 했다 사실 조짐은 있었다. 최근 2주. 민지가 이상했다.회의 때 의견 안 냄 리뷰 요청해도 "네" 하고 끝 점심 같이 안 먹음 눈 마주치면 피함그냥 바쁜가 했다. 아니었다. "언제부터 생각했어?" "한... 6개월?" 6개월. 반년을 혼자 끙끙댔다는 거다. 팀장인 내가 몰랐다."이유를 들어도 될까?" 민지가 핸드폰 꺼냈다. 메모앱. 정리해온 거다. 진심이었다. 민지의 이유들 하나씩 읽어줬다. "QA는 개발보다 연봉이 낮아요." 맞다. 우리 회사만 그런 것도 아니다. "버그 찾으면 칭찬보다 '왜 이제 찾았냐'는 말을 더 많이 들어요." 이것도 맞다. "자동화 공부해도 개발팀이 '그건 우리가 할게요'라고 해요." 이것도 맞다. 지난주에 그랬다. "친구들이 개발자로 이직해서 연봉 2천 오른 얘기 들으면..." 말끝을 흐렸다. 다 맞는 말이었다. 하나도 반박 못 하겠더라. "그래서 개발자 준비 중이에요. 인프런 강의 듣고 토이 프로젝트 하고..." 밤에 코딩 공부한다고 했던 게 이거였구나. "팀장님한테 미안해서 말 못 했어요. 근데 오늘은... 거짓말하기 싫어서요." 민지 눈이 빨개졌다. 나도 코끝이 찡했다. 13년 차가 할 수 있는 말 "민지야." 뭐라고 해야 할까. 'QA도 좋은 직업이야' 같은 헛소리는 하기 싫었다. '연봉은 올라갈 거야' 같은 거짓말도 하기 싫었다. "팀장님도 그렇게 생각하시죠? QA는... 한계가 있다고." "응. 맞아." 민지가 놀란 표정이었다. "나도 10년 전에 개발자 전환 고민했어. 진짜로." "...정말요?" "응. 자바 공부도 했어. 토이 프로젝트도 만들었고." "그럼 왜 안 하셨어요?"한참 생각했다. "QA가 좋아서는 아니었어." 솔직하게 말했다. "그냥 10년 하다 보니까 여기가 내 자리더라. 이상하게." QA라는 자리 "민지야. 솔직히 말할게." "네." "QA는 인정받기 어려운 직업이야. 맞아." 민지가 고개 끄덕였다. "연봉도 개발자보다 적어. 이것도 맞아." "근데 팀장님은..." "근데 나는 계속했어. 왜냐면." 뭐라고 설명해야 할까. "우리가 없으면 진짜 큰일 나거든. 진심으로." 지난달 생각났다. 배포 전날. 민지가 시나리오 테스트하다가 결제 버그 찾았다. "결제 금액이 100배로 나가는 버그. 그거 민지가 찾았잖아." "...네." "그거 배포됐으면?" 민지가 입술 깨물었다. "CS 폭주하고, 환불 처리하고, 신뢰도 떨어지고. 최소 3억 손해." "근데 개발팀은 '고마워'보다 '휴 다행이야'라고만 했잖아요." "응. 맞아." 이게 QA다. 당연한 걸 당연하게 했을 뿐인데 아무도 알아주지 않는다. 근데 못 찾으면 욕먹는다. "근데 민지야. 그게 우리 일이야." "......" "불합리하지. 나도 안다." 퇴사를 말리고 싶지 않았다 "민지야. 솔직히 말할게." "네." "나는 너 붙잡고 싶어. 진심으로." 민지가 나를 봤다. "너 지금 우리 팀에서 제일 잘해. QA 감각도 좋고, 리스크 판단도 빠르고." "근데요?" "근데 개발자 되고 싶으면 해." "...네?" "13년 차가 3년 차한테 해줄 수 있는 말은 그거야." 민지 표정이 복잡했다. "QA는 마음에 들어서 하는 직업이 아니야. 적어도 나한테는." "그럼 왜 하세요?" "적성이 맞아서." 이상한 말 같지만 진짜다. "나는 버그 찾는 게 재밌어. 시나리오 짜는 것도 재밌고. 리스크 생각하는 것도." "저도 그런데요." "그래?" "네. 근데... 그게 커리어가 될까요?" 할 말이 없었다. 정답을 모르겠더라. 13년을 돌아보면 "민지야. 내가 13년 했잖아." "네." "10년 전에는 QA가 지금보다 더 안 좋았어." "...그랬어요?" "응. 테스터라고 불렀고, 수동 테스트만 했고, 경력 인정도 안 됐어." "지금은요?" "조금 나아졌어. 진짜로." QA 직무가 생긴 것만 해도 발전이다. 자동화 테스트 요구하는 것도. 성과 평가에 품질 지표가 들어간 것도. "5년 전보다는 확실히 나아졌어. QA 컨퍼런스도 생기고, 커뮤니티도 커지고." "근데 여전히 개발자보다는..." "응. 맞아." 이건 부정 못 한다. "그래도 나는 믿어. 앞으로 더 나아질 거라고." "...정말요?" "응. AI 시대에 품질은 더 중요해질 거야. 자동화도 더 발전할 거고." "그럼 저도 계속해야 할까요?" 대답 못 했다. 그건 내가 정해줄 수 있는 게 아니니까. 멘토의 한계 1on1 끝나고 혼자 남았다. 민지는 "생각해보겠습니다"라고 하고 나갔다. 표정은 여전히 어두웠다. 설득했나? 아니다. 위로했나? 그것도 아니다. 그냥 내 생각을 말했을 뿐이다. 창밖을 봤다. 저 밖에는 수많은 개발자들이 있다. 민지보다 적게 버는 개발자도 있고, 더 힘들게 사는 개발자도 있다. 근데 '개발자'라는 타이틀은 'QA'보다 낫다. 이게 현실이다. 슬랙에 민지 프로필 들어갔다. "3년차 QA Engineer. 꼼꼼함이 장점. 완벽주의자." 민지가 직접 쓴 소개다. 만약 민지가 떠나면. 팀은 돌아가겠지. 다른 사람 뽑으면 되고. 근데 민지 같은 사람 또 오기 어렵다. QA 감각. 이건 배워지는 게 아니거든. 팀장의 책임 저녁 7시. 남편한테 전화했다. "오늘 후배가 퇴사하고 싶대." "아 그래? 왜?" "QA가 미래 없다고." "...뭐라고 했어?" "사실을 말했지. 맞다고." 남편이 웃었다. "너답네." "근데 나 잘한 거 맞아?" "몰라. 근데 거짓말하는 것보단 낫잖아." 그렇긴 하다. 'QA도 좋은 직업이야' 같은 말 했으면. 민지는 더 혼란스러웠을 거다. "만약 민지가 진짜 퇴사하면?" "그럼 어쩔 수 없지." "내 책임 같은데." "왜?" "내가 QA를 매력적으로 만들지 못했으니까." 남편이 한숨 쉬었다. "여보. 그건 당신 책임이 아니야." "근데..." "QA 생태계 문제지. 당신이 어떻게 해." 맞는 말이다. 근데 위로는 안 된다. QA를 계속하는 이유 집에 와서 샤워했다. 거울 보니까 피곤한 얼굴. 38살. 13년 차. 왜 나는 QA를 계속하나. 개발자 전환할 수 있었다. 10년 전에. 연봉도 더 받을 수 있었다. 근데 안 했다. 왜? 답은 간단하다. 이게 내 자리니까. QA는 품질 지키는 사람이다. 아무도 안 보는 곳에서 리스크 찾는 사람. 배포 전에 마지막으로 확인하는 사람. 장애 나면 제일 먼저 달려가는 사람. 누가 해야 한다. 그게 나다. 13년 동안 느낀 거. QA는 소명이 아니다. 근데 누군가는 해야 하는 일이다. 그리고 나는 그걸 잘한다. 이상하게. 금요일 아침 출근했다. 민지가 자리에 있었다. "팀장님." "응." "어제 얘기 감사했어요." "...응." "집에 가서 생각 많이 했어요." "그래?" "일단은 더 해볼게요. QA." 가슴이 뛰었다. "근데 조건이 있어요." "뭔데?" "팀장님처럼 되고 싶어요. 13년 차." 뭐라고 대답해야 할까. "민지야. 나는 롤모델이 아니야." "알아요. 근데 팀장님은 거짓말 안 하잖아요." "......" "그게 좋았어요. 어제." 민지가 웃었다. "QA 힘들다고, 맞다고 해줘서. 근데 계속한다고 해서." "그래?" "네. 그럼 저도 해볼게요." "떠나고 싶으면 언제든지 떠나." "네. 알아요." 민지가 자리로 돌아갔다. 나는 커피 마시러 갔다. 손이 떨렸다. 아직도 잘 모르겠다. 내가 잘한 건지. 민지가 옳은 선택을 한 건지. 근데 확실한 건. 거짓말은 안 했다. 오후 회의 개발팀 리드 미팅. "이번 스프린트 일정 좀 빡빡한데요?" 개발 리드가 말했다. "테스트 기간 이틀만 줄여주시면..." 예전 같았으면 협상했을 거다. 근데 오늘은. "안 됩니다." "네? 왜요?" "품질은 협상 대상이 아닙니다." 회의실이 조용해졌다. "이틀 줄이면 시나리오 테스트 못 합니다. 장애 나면 책임 누가 집니까?" 개발 리드가 입술 깨물었다. "죄송합니다. 제가 너무..." "괜찮습니다. 일정은 함께 조율하죠." 회의 끝나고 민지가 말했다. "팀장님. 멋있었어요." "...그래?" "네. 저도 저렇게 할 수 있을까요?" "할 수 있어. 13년 차 되면." "아니요. 지금도 할 수 있어요." "...그래?" "네. 팀장님 보고 배웠어요." 민지가 웃었다. QA는 이런 직업이다. 누군가 지켜야 할 것을 지키는 일. 쉽지 않다. 외롭다. 근데 누군가는 해야 한다. 그게 우리다.팀원 퇴사 고민은 팀장 고민이기도 하다. QA 생태계 문제는 우리 모두의 숙제다. 근데 오늘 하루는 버텼다.