- 14 Dec, 2025
TestRail에 기록된 버그, 결국 배포되었다
빨간 딱지, 초록 사인 TestRail 열었다. 빨간 딱지 17개. 심각도 High 3개, Medium 14개. Low는 세지도 않았다. 배포일은 금요일. 오늘이 수요일. 개발팀 리드가 슬랙 보냈다. "팀장님, 내일 QA 사인 가능할까요?" 17개를 이틀 안에. 불가능하다. 물리적으로.회의실, 오후 4시 경영진 보고 회의. 개발 리드, 기획 리드, PM, 나. PM이 말했다. "이번 릴리즈는 꼭 나가야 합니다." "IR 자료에 들어갑니다." 기획 리드가 거들었다. "사용자 임팩트는 크지 않아요, 아마도." 아마도. 나는 테스트 결과 공유했다. "결제 플로우에서 간헐적 오류." "재현율 30%. 특정 환경에서만." "로그 분석 결과 DB 커넥션 이슈." 개발 리드가 답했다. "모니터링 강화하겠습니다." "장애 터지면 핫픽스 바로 올리겠습니다." PM이 물었다. "배포 가능한가요?" 모두가 나를 봤다.내가 할 수 있는 말 "리스크는 전달했습니다." "결제 성공률 2-3% 떨어질 수 있습니다." "주말 모니터링 필요합니다." PM이 고개 끄덕였다. "그 정도면 괜찮겠네요." 그 정도. 주문 100건 중 2-3건. 하루 1000건이면 20-30건. 괜찮다고 했다. 나는 더 말하지 않았다. "배포 승인하겠습니다." "단, 조건부입니다." 조건.모니터링 대시보드 실시간 확인 에러율 5% 넘으면 즉시 롤백 핫픽스 준비 완료 상태 유지PM이 웃었다. "물론이죠. 당연하죠." 회의 끝났다. 40분 걸렸다. 내 13년이 40분에 정리됐다.Jira 티켓, 업데이트 회의실 나와서 자리 앉았다. TestRail 열고 버그 상태 업데이트. Status: Known Issue Resolution: Will Not Fix (This Release) Deployment Risk: Acknowledged Comment 달았다. "배포 승인. 조건: 실시간 모니터링, 롤백 준비." "장애 발생 시 우선순위 1로 핫픽스." 팀원들한테 슬랙 보냈다. "금요일 배포 진행합니다." "알려진 이슈 있으니 주말 모니터링 부탁드립니다." 막내가 답했다. "팀장님, 저 결제 버그요?" "응. 그거." "괜찮을까요?" 나도 모른다. "모니터링 잘하자." 집에 가는 길 지하철에서 폰 봤다. QA 커뮤니티에 누가 글 올렸다. "버그 알면서 배포하는 거, 어떻게 생각하세요?" 댓글 20개 달렸다. "현실이죠." "리스크 전달했으면 된 거 아닌가요?" "저도 자주 겪어요. 익숙해지네요." 익숙해진다. 13년 하면 익숙해진다. 그게 문제다. 남편한테 얘기했다. "오늘 버그 있는데 배포 승인했어." "심한 버그야?" "결제. 30% 확률로 실패." "롤백 준비는 돼 있어?" "응." "그럼 됐네. 뭐." 됐다고 했다. 금요일, 배포 오전 11시 배포 시작. Blue-Green 배포. 30분 걸렸다. 모니터링 대시보드 열었다. Datadog, Sentry, 결제 성공률 그래프. 처음 1시간. 정상. 2시간. 정상. 점심시간 지나고. 정상. 오후 3시쯤 슬랙 알림 왔다. 개발팀에서. "결제 에러 스파이크 확인됩니다." 내가 예상한 그 버그. TestRail에 기록된 그 버그. 에러율 8%. 롤백 기준인 5% 넘었다. PM한테 전화했다. "롤백 진행하겠습니다." "잠깐만요, 좀 더 지켜봐요." "조건이 5%였습니다." "고객 문의는 안 들어오는데요?" "에러율이 8%입니다." "월요일까지 버티면 핫픽스 올릴 수 있어요." 버틴다. 월요일까지. 나는 말했다. "저는 롤백 의견입니다." "최종 결정은 PM이 하세요." PM이 선택했다. "일단 모니터링 강화하겠습니다." 전화 끊었다. 주말, 모니터링 토요일 아침 일어나서 폰 확인. 슬랙 알림 12개. 에러율 10%. 고객센터 문의 3건. "결제가 안 돼요." 일요일 오후. 에러율 15%. 고객센터 문의 18건. PM한테 메시지 보냈다. "월요일 오전 핫픽스 올리시죠?" "네, 준비 중입니다." 준비 중. 월요일 오전 10시. 핫픽스 배포됐다. 에러율 정상으로 돌아왔다. 고객센터 문의는 총 47건 들어왔다. PM이 슬랙에 올렸다. "빠른 대응 감사합니다. 고생하셨습니다." 빠른 대응. 포스트모템 화요일, 장애 분석 회의. RCA 작성했다. Root Cause: DB 커넥션 풀 설정 오류. Detection: QA 테스트 단계에서 발견. Decision: 일정상 배포 진행, 모니터링 강화로 대응. Impact: 주문 실패 건수 약 150건, 고객 문의 47건. Action Items:DB 커넥션 설정 가이드 문서화 배포 전 체크리스트 강화 알려진 이슈 배포 시 의사결정 프로세스 정립마지막 항목. 내가 넣었다. PM이 물었다. "이 프로세스 누가 정리하죠?" 다들 나를 봤다. "제가 하겠습니다." 회의 끝나고. 혼자 남았다. 프로세스 정립. 13년 동안 몇 번을 정립했나. 다음에도 똑같을 거다. TestRail, 버그 클로즈 화요일 저녁. TestRail 열어서 그 버그 찾았다. Status: Closed Resolution: Fixed in Hotfix Actual Impact: 150 failed orders Comment 달았다. "QA 단계에서 발견. 배포 후 장애 발생. 핫픽스로 해결." "예상한 리스크 그대로 발현됨." 마지막 줄은 지웠다. "예상한 리스크 그대로 발현됨." 의미 없다. Status만 Closed로 바꿨다. 팀원과의 대화 수요일 오후, 막내랑 1on1. "팀장님, 질문 있어요." "응." "저번 결제 버그요." "테스트에서 찾았는데 왜 배포한 거예요?" 어떻게 설명하지. "일정이 급했어." "그럼 버그 찾아도 소용없는 거 아니에요?" 소용없다. 그렇게 느껴질 수 있다. "소용없진 않아." "우리가 찾아서 기록했잖아." "그래서 장애 났을 때 빨리 대응했고." 막내가 말했다. "그럼 결국 장애는 나는 거잖아요." 맞다. "QA는 버그를 막는 게 아니야." "리스크를 알리는 거지." "최종 결정은 비즈니스가 하는 거고." 막내는 고개 끄덕였다. 납득한 얼굴은 아니었다. 나도 5년차 때 그랬다. 지금도 가끔 그렇다. 또 다른 버그, 또 다른 배포 목요일 오후. 다음 스프린트 계획 회의. PM이 말했다. "이번 릴리즈도 타이트합니다." "2주 안에 나가야 해요." 기획 리드가 말했다. "피처가 5개인데 QA 일정이 며칠이죠?" "3일 잡혀 있습니다." "3일이면 충분하죠?" 충분하지 않다. 하지만 말했다. "최선을 다하겠습니다." 회의 끝나고 자리 돌아왔다. TestRail 새 테스트 케이스 만들기 시작했다. 팀원들한테 슬랙 보냈다. "다음 주 릴리즈 일정 공유합니다." "테스트 기간 3일입니다." "우선순위 기반으로 진행하겠습니다." 시니어 팀원이 답했다. "3일이요? 빡세겠네요." "응. 빡세다." 퇴근길, 혼잣말 지하철 타고 집 가는 길. 창밖 보면서 생각했다. TestRail에 기록된 버그들. Closed, Known Issue, Won't Fix. 내가 찾은 버그들. 결국 배포되는 버그들. 13년 했다. 익숙해졌다. 하지만 익숙해지면 안 되는 것 같다. 집 도착해서 남편한테 말했다. "나 이 일 언제까지 할 수 있을까." "왜? 이직하게?" "아니, 그냥." "그냥?" "그냥 궁금해서." 남편이 웃었다. "너 스타일에 평생 하겠네." 평생. 씨어터 들어가서 샤워했다. 물 맞으면서 생각했다. 내일도 출근한다. TestRail 열 거다. 버그 기록할 거다. 어떤 건 고쳐지고. 어떤 건 배포될 거다. 그게 내 일이다. 다음 주, 또 월요일 아침. 출근해서 컴퓨터 켰다. 슬랙 알림 5개. 주말에 온 메시지들. TestRail 열었다. 새 버그 3개 추가돼 있다. 커피 마셨다. 세 번째다. 테스트 시작했다.버그는 기록된다. 그리고 어떤 건 배포된다. 나는 서명한다. 그게 팀장이다.
- 13 Dec, 2025
팀원 평가 시즌, 성과를 어떻게 설득할 것인가
11월이 오면 11월이다. 평가 시즌이다. 다른 팀 리드들은 성과 자료 정리하느라 바쁘다. 나도 바쁘다. 우리 팀원 8명 성과 어필해야 한다. 개발팀은 쉽다. "신규 기능 20개 개발했습니다." 디자인팀도 괜찮다. "UI 개선으로 전환율 15% 상승했습니다." 그런데 QA는? "버그 500개 찾았습니다"? 그게 잘한 건지 못한 건지 경영진은 모른다.작년에 배웠다. "저희 팀 열심히 했습니다" 이렇게 말하면 안 된다. 숫자가 없으면 설득이 안 된다. 근데 QA 성과를 숫자로 어떻게 만드냐고. 숫자 만들기는 전쟁이다 월요일 아침 9시. 팀원들 불렀다. "이번 주 안에 각자 성과 정리해. 정량 지표 위주로." 민수가 물었다. "버그 개수 쓰면 되나요?" "안 돼. 버그 많이 찾은 게 우리가 잘한 건지, 개발팀이 못한 건지 애매해." 지현이가 또 물었다. "그럼 뭘 쓰라는 거예요?" "장애 건수. 작년 대비 올해 줄어든 거. 그게 너희가 사전에 찾아낸 거야." 회의실 조용해졌다. 다들 그런 데이터 따로 모아둔 적 없다.수요일. 데이터 수집 시작했다. Jira에서 장애 건수 뽑았다. 작년 43건, 올해 28건. 35% 감소. 괜찮다. 근데 인사팀이 물어본다. "그게 QA 팀 덕분이라는 근거가 뭔가요?" 할 말이 없다. 그냥 "우리가 잘해서요"라고 하면 안 믿는다.결국 추가 자료 만들었다. "크리티컬 버그 사전 발견율 87%" - 배포 전에 우리가 찾은 거. "프로덕션 핫픽스 건수 작년 대비 52% 감소" - 이것도 우리 덕분. "고객 CS 불만 중 품질 관련 이슈 61% 감소" - CS팀한테 데이터 받았다. 이제 좀 보인다. 우리가 뭘 했는지. 성장은 숫자로 말한다 목요일 오후. 팀원별 성과 정리 시작. 수진이가 제일 어렵다. 시니어인데 올해 특별한 프로젝트가 없었다. 그냥 묵묵히 테스트했다. 꼼꼼하게. 정확하게. 근데 이걸 어떻게 어필하냐. 1on1 했다. "수진아, 올해 뭐 한 거 같아?" "그냥... 일했죠." "구체적으로." 한참 생각하더니 말했다. "저번 달에 결제 로직 버그 찾았어요. 심각한 거." "얼마나 심각한데?" "고객 카드 이중결제될 뻔했어요. 금액 계산해보니까 월 2000만원 손실 날 수도 있었고요." 바로 그거다. "월 2000만원 손실 방지" 이게 성과다. "꼼꼼한 테스트로 심각한 버그 발견" 이런 거 안 쓴다. "연 2억 4천만원 잠재 손실 방지" 이렇게 쓴다.주니어 혜진이는 다른 방식이다. 올해 입사 2년차. 성장이 중요하다. "자동화 테스트 작성 60건" - 구체적 산출물. "회귀 테스트 시간 20시간에서 4시간으로 단축" - 효율성. "신규 테스트 프레임워크 학습 완료, 팀 내 세미나 진행" - 성장과 기여. 이 정도면 괜찮다. 주니어는 성장 곡선 보여주면 된다.인사팀과의 전쟁 금요일 오후 3시. 인사팀 미팅. 우리 팀 8명 평가 결과 공유. S등급 1명 신청했다. 수진이. "연 2억 4천만원 손실 방지, 크리티컬 이슈 사전 발견율 92%" 인사팀 차장이 물었다. "다른 팀도 S등급 신청 많은데요. QA는 어차피 해야 하는 일 아닌가요?" 참았다. 화내면 안 된다. "QA가 하는 일 맞습니다. 근데 수진씨는 남들이 못 찾는 걸 찾아요. 결제 로직 버그는 개발팀 3명이 놓쳤고, 1차 QA에서도 안 나왔어요. 2차 심화 테스트에서 수진씨가 찾았습니다. 이게 시니어 역량입니다." "근데 2억이라는 숫자가 추정 아닌가요?" "맞습니다. 추정입니다. 근데 개발팀이 '신규 기능으로 매출 10% 증가 예상'이라고 쓸 때는 안 물어보시잖아요?" 차장이 웃었다. "알겠습니다. 검토하겠습니다." 검토한다는 건 50% 확률이다.A등급은 4명 신청했다. 자동화 기여한 혜진, 성능 테스트 전문성 키운 민수, 보안 테스트 강화한 지현, API 테스트 체계 만든 동욱. "A등급 4명은 많지 않나요? 다른 팀은 보통 2명인데." "우리 팀이 8명이고 다른 팀은 15명입니다. 비율로 치면 비슷합니다." 이것도 준비했다. 팀별 A등급 비율 표. 우리가 특별히 많지 않다. 인사팀이 고개 끄덕였다. "그럼 이렇게 진행하겠습니다." 회의 끝났다. 복도 나오면서 한숨 쉬었다. 팀원들에게 말 못 하는 것 월요일 아침. 팀원들이 물었다. "팀장님, 평가 어떻게 됐어요?" "아직 최종 결과 안 나왔어." 거짓말은 아니다. 인사위원회 승인 남았다. 근데 내가 신청한 대로 안 될 수도 있다. 수진이가 S 못 받으면 내 책임이다. 내가 어필을 못한 거다. 수진이 잘못이 아니다. A등급 4명 중에 누가 빠지면? 그것도 내 책임이다. "팀장님이 날 못 지켜줬구나" 이렇게 생각한다.작년에 경험했다. 내가 A로 신청한 팀원이 B로 강등됐다. 이유는 "타 팀과 형평성". 팀원한테 말해줬다. "미안해. 내가 더 잘 어필할 걸." 그 팀원이 말했다. "괜찮아요. 팀장님 잘못 아니에요." 근데 3개월 뒤에 이직했다. 그게 관리자 책임이다. 성과를 만드는 것도 중요하지만, 성과를 보이게 만드는 것도 중요하다. 싸움은 계속된다 수요일 오후. 인사팀에서 메일 왔다. "S등급 1명, A등급 3명 확정. A등급 1명은 B로 조정." 예상했다. 동욱이가 B가 됐다. 동욱이 잘못이 아니다. API 테스트 체계 진짜 잘 만들었다. 근데 다른 팀 시니어들이 더 강력한 성과를 냈다고 한다. 동욱이 불렀다. "동욱아, 평가 결과 나왔어." "B죠?" "어떻게 알았어?" "느낌이요. 괜찮아요." 괜찮을 리 없다. 동욱이 표정 봤다. "미안해. 내가 더 잘 싸울걸." "아니에요. 팀장님 덕분에 B라도 받았어요." "내년엔 꼭 A 받자. 지금부터 준비하자." 동욱이가 고개 끄덕였다. 근데 눈빛은 실망이었다.저녁에 혼자 생각했다. QA 성과 어필이 왜 이렇게 어려울까. 개발은 "만들었다"로 끝난다. QA는 "안 터졌다"를 증명해야 한다. 안 일어난 일을 어떻게 증명하냐고. 그래서 매번 이렇게 싸운다. "우리가 없었으면 이런 일이 났을 겁니다" 가정법으로. "우리가 있어서 이 정도로 줄었습니다" 비교법으로. 피곤하다. 근데 안 싸우면 팀원들이 손해본다. 내년 준비는 지금부터 목요일 아침. 팀 회의 소집했다. "올해 평가 끝났다. 내년 준비 시작한다." 팀원들 당황했다. "벌써요?" "응. 벌써." 화이트보드에 썼다. "성과 어필을 위한 3가지 원칙"정량화 - 모든 업무에 숫자 붙이기 영향도 - 비즈니스 임팩트 연결하기 기록 - 매월 성과 로그 남기기"앞으로 매월 말에 각자 성과 정리한다. 간단하게." "그걸 1년 모으면 평가 자료 된다." "내년 11월에 허겁지겁 만들지 말자."구체적으로 정했다.장애 건수: 매월 집계, 전월 대비 비교 크리티컬 버그 발견: 비즈니스 영향도 금액으로 환산 테스트 효율: 공수 단축, 자동화 커버리지 협업 기여: 타팀 도움 준 것도 기록 개인 성장: 학습, 세미나, 멘토링 모두 기록혜진이가 물었다. "이거 매달 하면 귀찮은데요." "귀찮아. 근데 11월에 더 귀찮아." "그리고 이거 안 하면 너희 성과가 안 보여. 손해는 너희가 본다." 팀원들 고개 끄덕였다. 다들 올해 고생한 거 안다. 관리자로 산다는 것 금요일 저녁 7시. 퇴근 준비하는데 수진이가 왔다. "팀장님, 커피 한 잔 해요." 카페 갔다. "S등급 감사해요." "네가 잘했어." "아니에요. 팀장님이 잘 써주셨어요. 저는 그냥 일했을 뿐인데." 뭐라고 말해야 할까. "수진아, 너 정말 잘해. 근데 회사는 그걸 모를 수도 있어. 내가 말해줘야 알아." "저도 이제 시니어인데, 이런 거 배워야 할 것 같아요. 제 성과 스스로 어필하는 것." "맞아. 그것도 역량이야." 수진이가 웃었다. "내년엔 제가 직접 해볼게요." "좋아. 근데 내가 검토는 해줄게."집에 왔다. 남편이 물었다. "평가 끝났어?" "응. 끝났어." "어땠어?" "싸웠어. 이겼어. 좀." 남편이 웃었다. "수고했어." 딸이 안방에서 나왔다. "엄마, 나도 오늘 시험 봤어. 100점!" "진짜? 잘했다!" "선생님이 칭찬해줬어." 부럽다. 초등학생은 100점 받으면 바로 칭찬받는다. QA는 100점 받아도 "원래 그래야 하는 거 아냐?" 이런다. 근데 뭐 어쩌겠나. 이게 내 일이다. 13년차의 깨달음 밤 11시. 혼자 앉아서 생각했다. 13년 전 주니어 QA 시절엔 몰랐다. 테스트만 잘하면 된다고 생각했다. 버그만 열심히 찾으면 인정받는다고 생각했다. 틀렸다. 버그 찾는 건 기본이다. 그 버그가 왜 중요한지 설명하는 게 진짜 일이다.팀장 되고 나서 더 배웠다. 내 성과 어필하는 것도 어렵다. 근데 팀원 성과 어필하는 건 더 어렵다. 왜냐면 내 일은 내가 다 알지만, 팀원 일은 내가 다 모른다. 그래서 물어봐야 하고, 파악해야 하고, 정리해야 한다. 안 하면? 팀원들이 묻힌다. 열심히 일했는데 평가 못 받는다. 그러면 떠난다.작년에 떠난 팀원 생각났다. 진짜 잘하는 애였다. 근데 내가 성과 어필 못 해줬다. B 받고 실망했다. 3개월 뒤 이직했다. 그게 제일 후회된다. 내가 조금만 더 싸웠으면. 숫자를 더 구체적으로 만들었으면. 인사팀을 더 설득했으면. 관리자는 팀원 지켜주는 사람이다. 성과로 지켜주는 거다. 내년을 위한 준비 주말에 노트 꺼냈다. 내년 계획 썼다. 월별 성과 리뷰 체크리스트장애 건수 및 심각도 크리티컬 버그 발견 및 영향도 테스트 효율 지표 팀원별 주요 기여 타팀 협업 사례분기별 팀원 1on1 필수 질문이번 분기 제일 뿌듯했던 일? 그게 비즈니스에 어떤 영향 줬어? 성장한 부분은? 다음 분기 목표는?10월에 할 일 (평가 한 달 전)팀원별 성과 초안 작성 정량 지표 최종 검증 타팀 리드들과 크로스체크 인사팀 사전 커뮤니케이션이번엔 준비됐다. 내년 11월엔 허겁지겁 안 한다. 팀원들 성과 제대로 보여준다.남편이 물었다. "그렇게까지 해야 해?" "응. 해야 해." "왜?" 생각했다. "내가 안 하면 아무도 안 해. 개발팀은 개발팀 리드가 챙기고, 디자인팀은 디자인 리드가 챙겨. QA는? 나 밖에 없어." "그래도 팀원들이 알아서 하면 안 돼?" "주니어들은 방법 모르고, 시니어들은 어필 안 익숙해. 결국 내가 해줘야 해." "힘들겠다." "힘들어. 근데 이게 내 일이야." 팀장의 성과는 팀원의 성과다 일요일 저녁. 슬랙에 메시지 왔다. 동욱이었다. "팀장님, 내년엔 꼭 A 받고 싶어요. 뭘 준비하면 될까요?" 답장 썼다. "일단 지금 하는 일 계속 잘해. API 테스트 체계 더 고도화하고. 그리고 매달 성과 정리해서 나한테 공유해. 내가 검토해줄게. 같이 준비하자." "감사합니다!" 채팅창 닫았다. 동욱이 내년엔 A 받는다. 내가 만든다.수진이도 메시지 보냈다. "팀장님, 저 내년에 후배들 멘토링 하고 싶어요. 그것도 성과가 될까요?" "당연하지. 팀 전체 역량 올리는 거잖아. 멘토링 계획 세우고, 과정 기록하고, 결과 측정하면 좋은 성과야." "알겠습니다! 계획 세워볼게요." 좋다. 이렇게 미리미리 준비하는 거다. 보이지 않는 일을 보이게 만드는 법 결국 이거다. QA는 보이지 않는다. 버그 안 터지는 게 우리 성과인데, 안 터진 걸 어떻게 보여주냐. 그래서 만든다. 숫자로 만들고, 이야기로 만들고, 데이터로 만든다. "저희가 올해 장애 35% 줄였습니다" - 숫자 "결제 이중과금 버그 발견해서 연 2억 손실 방지했습니다" - 이야기 "크리티컬 버그 사전 발견율 87%, 업계 평균 65% 대비 높습니다" - 데이터 이 세 가지 있으면 설득된다. 없으면 안 된다.그리고 중요한 거. 팀원들이 스스로 어필하게 만들어야 한다. 내가 매번 다 해줄 순 없다. 시니어들은 성과 정리 방법 가르친다. 주니어들은 성장 스토리 만들게 돕는다. 중간급들은 독립적으로 할 수 있게 피드백 준다. 3년 뒤엔 내가 안 챙겨도 팀원들이 알아서 한다. 그게 목표다. 또 다른 시즌이 온다 11월 끝나간다. 평가 시즌 끝났다. 수진이 S, 세 명 A, 네 명 B. 작년보단 나았다. 근데 끝이 아니다. 12월 되면 내년 목표 세운다. 1월 되면 새 프로젝트 시작한다. 그리고 다시 11월 온다. 매년 반복이다. 팀원 성과 만들고, 정리하고, 싸우고. 이게 팀장 일이다.피곤하냐고? 피곤하다. 그만두고 싶냐고? 가끔. 근데 왜 하냐고? 누가 해야 하니까. 내가 안 하면 우리 팀원들 손해보니까. 그리고 솔직히. 팀원들 좋은 평가 받을 때. "팀장님 덕분이에요" 이 말 들을 때. 조금 뿌듯하다. 이것 때문에 한다. 내년에도 할 거다.QA 성과는 만들어지는 게 아니라 보이게 만드는 거다. 싸워야 보인다.
- 12 Dec, 2025
화요일 오전 크로스펑셔널 미팅, 시간만 흘렀다
9시 30분 회의실 회의실에 먼저 도착했다. 노트북 켜고 지난주 품질 메트릭스 정리했다. 테스트 커버리지 82%, 크리티컬 버그 3건 오픈, 예상 테스트 기간 2주. 개발 리드가 들어왔다. 기획 리드는 커피 들고. PM은 노트북 두 개 펴놨다. "오늘 다음 스프린트 일정 정리하죠." PM이 화면 공유했다. 간트차트가 떴다.일정부터 정해져 있다 "출시일은 3월 15일로 확정입니다. 경영진 보고 끝났어요." 시작부터 그렇다. 개발 리드가 손들었다. "개발 완료는 3월 1일 목표로 하겠습니다." 2주다. QA 기간이 2주다. 내가 말했다. "그럼 QA는 3월 1일부터 15일까지?" "네, 2주면 충분하죠?" 충분하지 않다. 이번 기능은 결제 로직 변경이다. 크로스 브라우저 테스트, 모바일 디바이스 테스트, 결제 시나리오만 100개가 넘는다. "최소 3주는 필요합니다. 결제 관련이라 리스크가 높아요." PM이 고개를 저었다. "일정이 이미 확정됐어요. 마케팅 캠페인도 다 짰고요." 기획 리드가 거들었다. "자동화 있잖아요. 그거로 커버 안 되나요?" 자동화 커버리지는 60%다. 나머지 40%는 수동이다. 결제는 특히 수동 테스트 비중이 크다. "자동화로 안 되는 케이스가 많습니다. 실제 카드 결제, PG사 연동, 환불 프로세스..." "그래도 2주 안에 해야죠. 일정은 못 미뤄요." 협의가 아니다. 통보다.품질은 협상 대상 내가 노트북을 돌렸다. 지난 분기 장애 현황을 보여줬다. "지난번 결제 기능 배포 때 장애 3건 났습니다. 테스트 기간이 10일이었어요. 고객 환불 요청 247건, CS 비용만 800만원." 개발 리드가 화면을 봤다. "그건... 예외 케이스였죠." 예외가 아니다. 테스트 기간이 부족했다. "이번에도 같은 상황 올 수 있습니다. 최소 3주, 안 되면 기능 축소를 고려해야 합니다." 기획 리드가 말했다. "기능 축소는 안 됩니다. 이미 대외 발표했어요." PM이 중재하듯 말했다. "QA 리소스 더 투입하면 어떨까요?" 팀원이 8명이다. 다 다른 프로젝트 잡혀있다. 갑자기 리소스를 어디서 뽑나. "지금 팀원들 다 풀로 돌고 있습니다. 외주 쓰려면 최소 2주 전에 말씀하셔야 했고요." "그럼 야근으로..." 야근으로 품질이 올라가지 않는다. 피곤하면 버그를 놓친다. "야근은 단기 솔루션이 아닙니다. 지속 가능하지 않아요." 회의실이 조용해졌다. 다들 노트북만 본다. PM이 말했다. "일단 2주로 진행하고, 중간에 리스크 보면서 조정하죠." 조정이 안 된다는 걸 다 안다. 일정은 한 번 정해지면 안 바뀐다. 협업이라는 이름 기획 리드가 물었다. "테스트 우선순위는 어떻게 되나요?" "크리티컬 패스부터 합니다. 결제 플로우, 환불, PG 연동 순서로." "UI 변경 사항도 체크해야 하지 않나요? 디자인 많이 바뀌었어요." 그것도 해야 한다. 하지만 시간이 없다. "UI는 세컨더리로 잡겠습니다. 기능 먼저, UI는 병렬로 돌리고요." 개발 리드가 끼어들었다. "API 변경도 있어요. 백엔드 테스트 케이스 새로 작성해야 하지 않나요?" 해야 한다. 다 해야 한다. 2주 안에. "API 테스트는 자동화로 커버하겠습니다. 새 케이스는 이번 주 안에 작성하고요." PM이 정리했다. "좋습니다. 그럼 QA는 3월 1일부터 15일, 2주 진행. 중간 체크포인트는 3월 8일로 하죠." 중간 체크포인트에서 뭘 체크하나. 이미 늦었다고 말할 때쯤이면 손 쓸 방법이 없다.회의록에 남는 것 회의가 끝났다. 1시간 30분. PM이 회의록 작성했다. 컨플루언스에 올라왔다.출시일: 3월 15일 개발 완료: 3월 1일 QA 기간: 3월 1일~15일 (2주) 중간 체크: 3월 8일 담당: QA 팀내가 제기한 리스크는 안 적혔다. 3주 필요하다는 의견도 없다. 장애 이력도 없다. 회의록에는 합의만 남는다. 이견은 사라진다. 슬랙에 메시지 남겼다. "QA 기간 2주는 리스크 높습니다. 최소 3주 필요. 회의록에 추가 부탁드립니다." PM이 답했다. "일정 확정이라 어렵습니다. 리스크는 트래킹하겠습니다." 트래킹만 한다. 해결은 안 한다. 팀원들한테 뭐라고 하나 팀 채널에 공지했다. "다음 스프린트 일정 나왔습니다. 결제 기능 리뉴얼, QA 기간 3월 1일~15일." 팀원들 반응이 올라왔다. "2주요? 결제인데?" "다른 프로젝트는요?" "야근 각인가요..." 영민이가 물었다. "3주 달라고 안 하셨어요?" 했다. 근데 안 됐다. "일정이 확정이래. 최대한 효율적으로 돌려보자." 효율적으로. 이 말이 얼마나 공허한지. 지원이가 말했다. "자동화 커버리지 올릴까요?" 올려야 한다. 근데 자동화 작성 시간도 필요하다. "크리티컬한 케이스 위주로 추가해. 다음 주까지." 다음 주면 개발 끝난다. 그때 자동화 돌려봐야 버그 나온다. 수정하고 재테스트하면... 시간이 없다. 점심시간 팀원들이랑 식당 갔다. 다들 조용했다. 수진이가 말했다. "팀장님, 스트레스 많으시죠?" 많다. 근데 표현 안 한다. "괜찮아. 우리가 잘하면 돼." 우리가 아무리 잘해도 시간은 안 늘어난다. 영민이가 물었다. "이번에도 일정 못 지키면 QA 탓 하려나요?" 할 것이다. 항상 그랬다. "그래서 우리가 더 꼼꼼히 해야지. 리스크 문서화하고, 테스트 커버리지 투명하게 공유하고." 방어적이다. 이게 QA 리드의 일이다. 팀 지키는 것. 오후, 테스트 전략 회의 팀원들 모았다. 2주 안에 뭘 할 수 있을까. 화이트보드에 썼다. Week 1:테스트 케이스 작성 (2일) 스모크 테스트 (1일) 주요 시나리오 테스트 (2일)Week 2:크로스 브라우저 (2일) 모바일 디바이스 (2일) 리그레션 (1일)버퍼는 없다. 버그가 안 나온다는 가정이다. 지원이가 손들었다. "버그 나오면요?" "개발팀이랑 핫픽스 프로세스 돌린다. 최대한 빨리 수정받고." 수진이가 물었다. "크리티컬 버그 나오면요?" "일정 조율 다시 요청한다. 근데... 안 될 거야." 다들 안다. 그래도 물어본다. 리스크 문서 컨플루언스에 리스크 문서 작성했다. 제목: [결제 리뉴얼] QA 리스크 및 완화 계획 Risk #1: 테스트 기간 부족 (2주 → 3주 필요)Impact: High Probability: High Mitigation: 우선순위 기반 테스트, 자동화 확대Risk #2: 리소스 부족 (8명 → 10명 필요)Impact: Medium Probability: High Mitigation: 외주 검토, 타팀 지원 요청Risk #3: 결제 장애 발생 가능성Impact: Critical Probability: Medium Mitigation: 프로덕션 모니터링 강화, 롤백 계획문서 링크를 PM한테 보냈다. "리스크 공유드립니다. 검토 부탁드립니다." 읽씹이다. 한 시간 지나도 답이 없다. 두 시간 후에 답왔다. "확인했습니다. 일정 내 최선을 다해주세요." 최선을 다해달라. 이 말만 돌아온다. 개발 리드한테 DM 슬랙 DM 보냈다. "형준님, 이번 일정 너무 타이트한 거 아시죠?" 답이 빨리 왔다. "알아요. 저도 개발 일정 빡빡해요." "크리티컬 버그 나오면 어떡하시려고요?" "최대한 안 나오게 개발하죠. 유닛 테스트 커버리지 올리고 있어요." 유닛 테스트로는 부족하다. 통합 테스트, E2E 테스트가 필요하다. "그래도 리스크는 있잖아요. 일정 조정 같이 얘기해볼까요?" "저도 말했어요. 근데 안 되더라고요. 이미 대외 발표했대요." 대외 발표가 뭐가 중요한가. 품질이 중요하지. "그럼 기능 축소는요?" "그것도 안 된대요. 다 중요한 기능이래요." 다 중요하면 시간을 줘야 한다. 시간도 안 주고 다 중요하다는 건 모순이다. 6시, 퇴근 시간 팀원들이 하나씩 퇴근한다. "내일 봐요, 팀장님." "먼저 들어갑니다." "수고하셨어요." 나는 남았다. 테스트 계획서 마저 써야 한다. 노트북 화면에 간트차트가 떠있다. 빨간 줄이 많다. 리스크 표시다. 2주. 14일. 112시간. 테스트 케이스는 348개. 자동화는 210개. 수동은 138개. 수동 테스트 하나에 평균 30분. 138개면 69시간. 크로스 브라우저는 5개 브라우저. 주요 시나리오 50개. 250회 테스트. 계산이 안 맞는다. 집에 가는 길 지하철에서 남편한테 카톡 보냈다. "오늘 회의 최악이었어." 답이 왔다. "또 일정 싸움?" "응. 2주 달래. 결제 기능인데." "에휴. 거기도 그렇구나." 남편 회사도 비슷하다. 개발자도 일정에 치인다. "저녁은?" "너 오면 같이 먹자. 뭐 먹을래?" "아무거나. 피곤해." "치킨 시킬까?" "좋아." 치킨 먹으면 살찐다. 근데 오늘은 상관없다. 집에서 딸이 학교 숙제 하고 있었다. "엄마 왔어요?" "응, 우리 공주. 숙제 다 했어?" "거의요. 이거 하나만 더." 남편이 부엌에서 나왔다. "힘들었어?" "응. 회의가 2시간." "결론은?" "일정 확정. QA 2주." "에휴." 치킨이 왔다. 셋이서 먹었다. 딸이 물었다. "엄마 회사 재밌어요?" 재밌냐고. "응, 재밌어. 엄마 일 중요해." 거짓말은 아니다. 중요하다. 근데 인정은 안 받는다. 밤 11시 딸 재우고 남편이랑 소파에 앉았다. "오늘 회의에서 내 말 하나도 안 들어줬어." "그랬구나." "3주 필요하다고 했는데 2주래. 리스크 얘기했는데 일정 확정이래." "그럼 어떡하려고?" "어떡하긴. 해야지. 팀원들이랑 최대한 효율적으로." "그러다 장애 나면?" "그럼 QA 탓이지." 남편이 내 손을 잡았다. "너무 스트레스 받지 마. 네가 할 수 있는 거 다 하는 거잖아." 다 해도 부족하다. 시간이 없으니까. "13년 했는데 여전히 이래." "QA가 원래 그렇잖아. 우리도 개발자들 무시당해." "그래도 개발은 성과가 보이잖아. 기능 만들면 눈에 보이고." "QA도 보이지. 버그 안 나는 게 네 성과야." 버그 안 나는 건 당연한 거래. 버그 나오면 QA 잘못이고. 침대에서 불 끄고 누웠다. 내일 할 일 생각했다.테스트 계획서 완성 팀원들 태스크 분배 자동화 케이스 리뷰 개발팀 일정 재확인 리스크 업데이트2주 후면 배포다. 장애 안 나면 좋겠다. 나면... 포스트모템 쓰고, 재발 방지책 세우고, 경영진한테 보고하고. 또 "QA가 뭐했냐"는 소리 들을 것이다. 눈을 감았다. 내일 또 회의다.협업이라는 이름으로 모였지만, 결국 정해진 각본대로 흘렀다. QA의 목소리는 회의록에 남지 않는다. 그래도 내일 또 싸워야 한다. 팀을 위해.
- 11 Dec, 2025
Confluence에 적힌 지난달 리포트, 누가 봤을까
새벽 1시의 완성 지난달 품질 리포트 작성했다. 새벽 1시까지. Confluence 페이지 30개. 차트 15개. 테이블 20개 넘게. 품질 지표, 버그 트렌드, 리스크 분석, 자동화 커버리지, 팀 리소스 현황까지. 하나하나 숫자 검증하고, 그래프 색깔 맞추고, 인사이트 정리했다. "이번엔 제대로 읽힐 거야." 매달 하는 생각이다. 매달 틀렸다.작년 배포 장애 이후로 시작했다. 경영진이 "품질 가시성이 없다"고 했다. CTO가 "데이터 기반 의사결정" 운운했다. 그래서 만들었다. 월간 품질 리포트. 처음엔 열심히 했다. 당연히. 13년 차 QA 팀장이다. 숫자로 말하는 게 익숙하다. 첫 달 리포트는 40페이지였다. 너무 길다고 했다. 두 번째 달은 25페이지로 줄였다. 핵심만 남겼다. 그래도 안 읽었다. "바쁘셔서 그래. 다음 달엔 읽으실 거야." 지금 10개월째다. 여전히 안 읽는다. 5분의 경영진 보고 월례 경영진 보고 있었다. 오늘 오후 2시. 내 차례는 14시 47분. 발표 순서 7번째. 앞에 개발팀, 인프라팀, 보안팀 다 끝나고. 준비한 건 20분 분량. 핵심 슬라이드 12장. 발표 시작했다. "지난달 품질 지표 보고드리겠습니다." 첫 슬라이드 넘어가는데 누군가 물었다. "장애 몇 건이었죠?" "크리티컬 2건, 메이저 5건입니다." "작년 대비로요?" "30% 감소했습니다." "오케이. 다음."3분 지났다. 12장 중에 2장 넘어갔다. "자동화 커버리지는 어떻게..." 말 끊겼다. CFO가 물었다. "그래서 다음 분기 품질 이슈 리스크는?" "중위험 3개, 고위험 1개입니다. 상세 내용은..." "고위험 뭔데요?" "레거시 결제 모듈 리팩토링 관련입니다. 테스트 환경이..." "개발팀이랑 조율했죠?" "네, 했는데 일정이 촉박해서..." "일정 내 해결 가능한가요?" "리소스 추가 투입되면 가능합니다." "알겠습니다. 다음 안건." 5분 지났다. 발표 끝났다. 12장 중에 4장 봤다. 나머지 8장은 "시간 관계상 패스"였다. 회의실 나왔다. 손 떨렸다. 화장실 갔다. 거울 봤다. 웃었다. 웃긴 거다. Confluence 조회수 0 사무실 돌아와서 Confluence 열었다. 지난달 리포트 페이지. 페이지 하단에 조회수 나온다. 작은 숫자. Views: 12 12명. 우리 팀 8명. 나 1명. 개발팀 리드 2명. 기획팀 1명. 끝. 경영진은 0명.페이지 상단에 @멘션 걸어뒀었다. CTO, CPO, CFO, 각 본부장 5명. 총 8명. 알림 갔을 거다. 슬랙에도 공유했다. "#leadership" 채널에. 반응은 이모지 하나. 👍 누가 눌렀는지 확인했다. 개발 본부장이었다. 착한 사람이다. 읽지도 않고 눌러줬을 거다. 작년 9월 리포트 열어봤다. Views: 8. 10월: 11. 11월: 9. 12월: 15. (연말이라 그래도 많았다.) 올해 1월: 7. 2월: 10. 3월: 12. 평균 10명. 우리 회사 직원 1000명이다. 경영진 15명이다. "데이터 기반 의사결정." 웃긴다. 30시간의 가치 계산해봤다. 한 달 리포트 작성 시간. 데이터 수집: 4시간. Jira, TestRail, Jenkins, Sentry 다 뒤진다. 분석: 6시간. 트렌드 찾고, 이상치 확인하고, 원인 추론한다. 차트 작성: 3시간. 엑셀로 만들고, 스크린샷 떠서 붙인다. 인사이트 정리: 5시간. 왜 이런 결과가 나왔는지, 다음 달은 어떨지 쓴다. 검토 및 수정: 4시간. 팀원들 피드백 받고, 숫자 재검증한다. 슬라이드 작성: 6시간. 경영진 보고용. 알아듣기 쉽게. 피드백 반영: 2시간. "이 부분 더 상세하게" "여기 간략히" 총 30시간. 한 달 근무시간 160시간의 18.75%. 내 연봉 8500만원의 18.75%는 1593만원. 월 132만원 상당의 일이다. 5분 보고로 끝난다. 분당 26만원. 1초에 4400원. "다음 안건" 한마디에 132만원 날렸다. 누구를 위한 리포트인가 팀원한테 물어봤다. 민지, 5년 차. "민지야, 내가 쓰는 월간 리포트. 도움 돼?" "아, 네. 도움 되죠." "어떤 부분이?" "음... 전체 품질 트렌드 파악할 때요?" "그거 우리 팀 주간 회의에서 다 얘기하잖아." "아... 그렇긴 하네요." "솔직히 말해. 읽어?" 민지가 웃었다. "가끔요. 필요할 때." "언제가 필요할 때야?" "팀장님이 '리포트 봐' 하실 때요." 정직한 대답이다. 개발팀 리드한테도 물었다. 석진, 10년 차. "석진아, 우리 품질 리포트 보고 있어?" "어, 대충 훑어보지." "뭐가 도움 돼?" "버그 트렌드? 우리 팀 품질 어떤지 확인하려고." "그거 주간 QA 미팅에서 다 공유하는데." "아... 맞네. 그럼 뭐 보지..." 석진도 웃었다. "사실 잘 안 봐. 미안." 아니다. 미안할 거 없다. 당연하다. 30시간 들여 만든 리포트가 필요 없는 거다. 품질은 숫자가 아니라서 문득 깨달았다. 품질은 숫자로 증명되지 않는다. 이 회사에서는. 버그 30% 줄였다고? "원래 그래야 정상 아냐?" 테스트 커버리지 80% 달성? "100%는 왜 안 돼?" 장애 제로 달성? "당연한 거 아냐?" 자동화로 리소스 40% 절감? "그럼 팀원 줄여도 되겠네?" 품질은 공기다. 있을 땐 모르고, 없을 때만 난리다. 작년 대형 장애 때 생각난다. 밤 11시에 전화 왔다. CTO였다. "지금 결제 안 돼요. 왜 이래요?" "확인하겠습니다." 새벽 3시까지 원인 찾았다. 개발팀 긴급 배포. 5시에 복구 완료. 다음 날 오전 회의. CTO가 물었다. "왜 사전에 못 잡았어요?" "테스트 환경이 프로덕션이랑 달라서..." "그럼 환경 맞춰야죠." "예산 요청 드렸는데 보류되셨습니다." "..." 침묵. 5초. 그리고. "다음부터 미리 체크해주세요." 그날 Confluence에 포스트모템 10페이지 작성했다. 조회수: 6명. 리포트를 쓰는 이유 그럼에도 쓴다. 매달. 왜? 첫째, 내 책임이다. 팀장이니까. 품질 상태 기록 남겨야 한다. 둘째, 언젠가 필요하다. 장애 나면 "그때 경고했었다" 증거 된다. 셋째, 팀원들 성과다. 숫자로 안 남기면 인정 안 받는다. 넷째, 내가 정리 필요하다. 한 달 돌아보는 시간. 다섯째, 혹시 모른다. 누군가 읽을지. 여섯째, 습관이다. 13년 했다. 이게 프로다. 그래도 허무하다. 30시간이 5분으로 압축되는 순간. "잘 하고 있어요." 누가 그렇게 말해주면 좋겠다. 경영진이. 한 번이라도. "리포트 잘 봤어요. 수고했어요." 그 한마디면 된다. 다음 달도 쓸 힘 생긴다. 근데 안 온다. 안 올 거다. 알고 있다. QA의 목소리 동료 QA 팀장이랑 술 마셨다. 다른 회사. "너네도 품질 리포트 써?" "어, 매달." "읽어줘?" "ㅋㅋㅋ 아니." "우리도." "QA가 원래 그래." 잔 부딪혔다. 쓴웃음 나왔다. "근데 신기한 거 있어. 장애 나면 우리 목소리 엄청 커져." "ㅇㅇ. 맞아. 그때만." "평소엔 투명인간이다가 장애 터지면 슈퍼맨 돼야 해." "예방은 몰라주고 대응만 평가하지." "백신 맞으면 아프고, 안 맞으면 병 걸리고. QA가 백신이야." "인정." 또 마셨다. 소주 3병째. "그래도 써야지. 안 쓰면 더 투명인간 돼." "맞아. 쓰는 게 최소한의 존재감이야." "슬프네." "그래도 우리 일이니까." 헤어질 때 그가 말했다. "나중에 우리 세대가 임원 되면 달라질까?" "글쎄. 그땐 우리도 바빠서 안 읽을 거야." "ㅋㅋㅋ 현실적이네." "13년 하면 알게 돼." 택시 탔다. 집 가는 길. 창밖 봤다. 서울 야경 예쁘다. 불 켜진 빌딩들. 다들 야근 중이다. 저 안에 몇 명이나 Confluence 보고 있을까. 다음 달 리포트 오늘도 쓴다. 이번 달 리포트. 데이터 모으고 있다. Jira 쿼리 돌렸다. TestRail 리포트 뽑았다. 차트 만들 거다. 트렌드 분석할 거다. 인사이트 정리할 거다. 30시간 들일 거다. 5분 발표될 거다. 10명 읽을 거다. 그래도 쓴다. 누군가는 봐줄 거라고. 언젠가는 읽힐 거라고. 믿고 싶다.새벽 1시, 저장 버튼 눌렀다. 다음 달에 또 쓴다.
- 10 Dec, 2025
13년 경력인데 여전히 '품질 검사 담당'으로만 불리나
13년차 팀장 오늘 경영진 보고가 있었다. 개발 팀장, 기획 팀장, 나. 한 시간 발표했다. 개발 팀장은 "신기술 도입"으로 칭찬받았다. 기획 팀장은 "비즈니스 임팩트"로 인정받았다. 내 차례가 왔다. "QA는 배포 일정 맞춰주기만 하면 돼요." 13년 했다. 여전히 이렇다.같은 팀장인데 우리는 같은 급여 테이블이다. 팀장 직급, 연봉 8500만원. 관리자 수당도 같다. 그런데 회의에서 다르다. 개발 팀장: "기술 부채 해소하려면 3개월 필요합니다." 경영진: "알겠습니다. 계획 세워주세요." 기획 팀장: "사용자 리서치 기간 2주 더 주세요." 경영진: "필요하면 하세요." 내 차례. 나: "리그레션 테스트 자동화하려면 인력 2명 더 필요합니다." 경영진: "그거 꼭 해야 해요? 수동으로 하면 안 돼요?" 나: "품질 전략 재수립하려면 시간이..." 경영진: "일정은 지켜야죠. 품질은 당연한 거고." 같은 팀장이다. 왜 나만 이럴까. 전략가가 아니라 검사자 리스크 기반 테스트 전략. 13년 동안 갈고 닦았다. 어느 기능을 집중 테스트할지. 어느 영역을 자동화할지. 리소스를 어떻게 배분할지. 데이터 기반으로 판단한다. 과거 장애 이력, 변경 빈도, 비즈니스 임팩트. 엑셀에 정리한 게 아니다. TestRail, Jira 연동해서 실시간 대시보드다. 지난주 전략 회의. 신규 기능 20개, 일정 2주. 불가능하다. "우선순위 기반으로 테스트 범위 조정하겠습니다." 내가 말했다. 개발 팀장이 웃었다. "QA는 다 테스트하는 거 아니에요?" 전략이 아니다. 그냥 검사다. 내가 하는 건 체크리스트 체크. 그들 눈엔 그렇다.장애는 QA 책임 지난달 장애 났다. 금요일 밤 10시. 결제 모듈 오류. 토요일 새벽 3시까지 대응했다. 원인 분석, 재발 방지책, 포스트모템. 월요일 보고서 20페이지 작성했다. 회의에서 질문 받았다. "왜 QA에서 못 잡았어요?" 변경 사항 300개. 테스트 일정 3일. 자동화 커버리지 40%. 인력 8명. 설명했다. 리소스 한계, 우선순위 결정 과정, 리스크 평가 근거. "그래도 QA 아니에요?" 개발 팀장은 안 물어본다. "왜 버그를 만들었냐"고. 기획 팀장도 안 물어본다. "왜 요구사항이 애매했냐"고. 나만 묻는다. "왜 못 잡았냐"고. 품질은 협업의 결과다. 입버릇처럼 말한다. 아무도 안 듣는다. 투자는 안 되는 영역 올해 예산 회의. 각 팀 투자 계획 발표했다. 개발팀: "클라우드 인프라 확장, 3억" 승인. 기획팀: "사용자 분석 툴 도입, 5천만원" 승인. QA팀: "테스트 자동화 인프라, 1억" 보류. "수동으로 하면 안 돼요?" 또 그 질문. 자동화하면 회귀 테스트 시간이 2주에서 2시간으로 준다. 설명했다. 리소스 절감 효과, ROI 계산, 벤치마크 데이터. "일단 올해는 보류요. 꼭 필요하면 내년에." 내년에도 똑같다. 매년 보류다. 개발은 투자. 기획은 투자. QA는 비용. 그들 눈엔 그렇다.팀원들한테 미안하다 우리 팀 8명. 다들 열심히 한다. 막내는 자동화 공부한다. 야근하면서 셀레니움 돌린다. "팀장님, 이거 정식으로 도입하면 안 될까요?" 중견은 성능 테스트 전문가다. JMeter로 병목 잡아낸다. "부하 테스트 환경 제대로 갖추고 싶어요." 다 들어주고 싶다. 예산이 없다. 아니, 예산은 있다. 우선순위가 낮다. 지난주 1on1. 5년차 팀원이 물었다. "팀장님, QA도 커리어 전망 있나요?" 할 말이 없었다. "있다"고 말했다. 거짓말은 아니다. 하지만 확신도 없다. 13년 했다. 팀장까지 왔다. 그래도 '검사 담당'이다. 팀원들은 뭘 보고 희망을 가질까. 다른 회사도 똑같다 QA 커뮤니티 모임. 한 달에 한 번 만난다. 타사 QA 리드들. 다들 똑같다. "우리도 그래요." "저희도 예산 안 나와요." "장애는 무조건 QA 책임이래요." 한 명이 말했다. "외국계는 좀 나아요. QA를 전략 파트너로 봐요." 부럽다. 이직할까. 아니다. 여기서도 13년 걸렸다. 다시 시작하기엔 나이가. 38세다. QA 시작한 게 25세. 그때는 테스터였다. 지금은 팀장이다. 호칭만 바뀌었다. 역할은 그대로다. 인정받고 싶다 거창한 거 아니다. "QA 덕분에 품질이 좋아졌어요." 이 말 듣고 싶다. "테스트 전략 탄탄하네요." 이 인정 받고 싶다. "투자할 만한 가치가 있네요." 이 평가 받고 싶다. 13년 했다. 장애 막은 건 몇 번인지 모른다. 배포 전에 치명적 버그 잡은 것도 수십 건. 아무도 모른다. 장애가 안 난 건 당연한 거다. 품질이 좋은 건 개발을 잘한 거다. QA는 보험이다. 있어야 하지만 티 나면 안 되는. 티 나면 "왜 못 잡았냐"는 질문. 안 나면 "필요 없는 거 아니냐"는 의심. 그래도 계속한다 어제 배포 있었다. 신규 기능 15개. 2주 테스트. 팀원들이랑 밤샜다. 리그레션 돌리고, 시나리오 검증하고, 성능 체크했다. 배포 성공. 장애 없었다. 슬랙에 올라왔다. "배포 성공했습니다. 수고하셨습니다." QA 언급 없다. 괜찮다. 익숙하다. 팀원들한테 말했다. "다들 고생했어. 우리가 잘해서 문제없었던 거야." 팀원들이 웃었다. "팀장님 덕분이죠." 아니다. 다들 잘했다. 퇴근하면서 생각했다. 13년 했다. 앞으로 몇 년 더 할까. 모르겠다. 하지만 오늘은 했다. 내일도 할 거다. 품질 검사 담당이어도. 전략가로 인정 안 받아도. 투자 우선순위 낮아도. 누군가는 해야 한다. 내가 하는 게 낫다. 13년 경력이니까.13년차 팀장인데, 여전히 '검사나 하는 사람'이다. 그래도 내일도 출근한다.