- 05 Jan, 2026
리스크 기반 테스트 전략, 이게 내 특기다
전부 테스트할 순 없다 출근했다. 슬랙 메시지 27개. 개발팀 리드가 쪽지 보냈다. "이번 주 배포인데 테스트 범위 좀..." 또 시작이다. 신입 개발자가 물었다. 지난주에. "이거 다 테스트하나요?" 웃었다. "다 하면 좋지." 할 수 없다는 게 문제다. 2주에 한 번 배포한다. 우리 팀 8명. 변경사항 평균 150개. 관련 기능까지 치면 500개 넘는다. 물리적으로 불가능하다. 그래서 선택한다. 무엇을 테스트하고, 무엇을 넘어갈 것인가. 13년 하면서 익힌 거다. 이게.리스크부터 찾는다 오전 회의. 기획팀장이 말한다. "이번에 결제 로직 바꿨어요." 귀가 쫑긋해진다. "어느 부분이요?" "PG사 연동 방식이요. API 버전업이랑." "테스트 일정은?" "이틀이요." 웃음 나온다. 참았다. 화이트보드에 적는다.결제 실패 시나리오: 최우선 PG 연동 타임아웃: 최우선 환불 로직 영향도: 최우선 결제 금액 검증: 최우선개발자가 말한다. "UI도 바꿨는데요." "어디요?" "버튼 색깔이요." 적는다. 하단에.버튼 색상 변경: 하이게 리스크 기반이다. 돈 관련은 무조건 위. 색깔은 아래. 단순하다. 사실. 근데 이걸 못하는 팀이 많다.영향도를 계산한다 점심 먹고 돌아왔다. 팀원이 묻는다. "이 기능은 어떻게 해요?" 신규 추천 알고리즘이다. 질문한다. "사용자 몇 명한테 노출돼?" "전체요." "장애 나면?" "추천이 안 뜨죠." "그럼 서비스는?" "그래도 쓸 순 있어요." 적는다.영향 범위: 전체 사용자 장애 영향도: 중 비즈니스 임팩트: 중상 복구 난이도: 중계산한다. 머릿속으로. 중상 정도면 중점 테스트다. "시나리오 10개 뽑아. 엣지케이스 위주로." "네." 또 묻는다. 다른 팀원이. "관리자 페이지 수정 건은요?" "사용자 몇 명?" "CS팀 5명이요." "장애 나면?" "수동으로 처리해요." "얼마나 걸려?" "한 10분?" 적는다.영향 범위: 내부 5명 장애 영향도: 하 비즈니스 임팩트: 하 복구 난이도: 하"스모크만 돌려. 메인 시나리오만." "알겠습니다." 이게 영향도 계산이다. 전부 같은 무게로 보면 안 된다. 3년 차 때는 몰랐다. 다 중요해 보였다. 지금은 안다. 뭐가 진짜 중요한지.과거 데이터가 답이다 오후 3시. 리스크 분석 시간. Jira 연다. 지난 6개월 장애 기록. 필터링한다. Critical 이상만. 나온다. 32건.결제 관련: 8건 로그인 관련: 6건 데이터 동기화: 5건 API 타임아웃: 4건또 본다. 배포 후 핫픽스 기록.결제 로직 변경 시: 핫픽스율 40% 검색 로직 변경 시: 핫픽스율 35% UI 변경 시: 핫픽스율 5%데이터는 거짓말 안 한다. 이번 배포 체크한다. 결제 로직 수정 있다. API 변경 있다. 로그인 쪽은 없다. 테스트 시간 배분한다.결제: 40% API 연동: 30% 기타 핵심: 20% 나머지: 10%팀원한테 공유한다. "이번에 결제랑 API 집중이야." "네." 신입이 묻는다. "왜요?" "작년에 결제 장애 8번 났어. API 타임아웃 4번." "아..." "UI는 5%야. 장애율이." "그럼 UI는 대충?" "아니. 효율적으로." 차이를 아는 게 중요하다. 대충이 아니라 효율적으로. 컨텍스트를 읽는다 회의 끝나고 복도에서 만났다. CTO. "이번 배포 괜찮아요?" "결제 로직 바뀌어서 좀 더 봐야 해요." "얼마나?" "이틀 더 주시면 좋겠어요." 표정이 굳는다. "일정이 빠듯한데." 안다. 알아. 근데 말해야 한다. "작년 결제 장애 기억하시죠?" "..." "그때 복구에 4시간 걸렸어요." "알아요." "이번 변경 범위가 그때보다 커요." 침묵. "이틀은 줄게요." "감사합니다." 이게 컨텍스트다. 단순히 '더 테스트해야 해요' 말하면 안 먹힌다. 왜 필요한지, 리스크가 뭔지, 과거에 뭐가 있었는지. 데이터 기반으로 말한다. 항상. 그래야 설득된다. 경영진이. 신입 QA들한테 말한다. "느낌으로 말하지 마. 숫자로 말해." "네." 나도 처음엔 몰랐다. '이거 위험할 것 같아요' 이렇게 말했다. 씹혔다. 당연히. 지금은 다르다. '작년 동일 변경 시 장애율 40%, 복구 평균 3시간, 비즈니스 임팩트 추정 2억' 이렇게 말한다. 먹힌다. 자동화는 도구다 저녁 6시. 팀원이 묻는다. "이거 자동화하면 안 돼요?" 회귀 테스트 케이스다. 300개. "할 거야." "언제요?" "다음 분기." 실망한 표정. "지금은 리스크 높은 거부터 손으로." "비효율적인데요." "알아. 근데 자동화도 리스크 기반이야." 화이트보드에 적는다. 자동화 우선순위:회귀 테스트 (매 배포 반복) 결제 시나리오 (장애 임팩트 대) 로그인/인증 (전체 사용자 영향) API 검증 (연동 많음)"UI 테스트는요?" "나중에. 깨지기 쉬워서." 자동화는 만능이 아니다. 비용이다. 시간도, 유지보수도. 무엇을 자동화할지도 선택이다. 리스크 기반으로. 이것도 13년 하면서 배웠다. 초반엔 다 자동화하려 했다. 망했다. 유지보수 지옥. 지금은 안다. 핵심만 자동화한다. 나머지는 손으로 하는 게 빠르다. 팀원도 배운다 1on1 시간. 5년 차 팀원. "요즘 뭐가 어려워?" "우선순위 정하기요." "예를 들면?" "이번 배포도. 뭘 먼저 할지 모르겠어요." 노트북 켠다. "이번 변경사항 봐." 같이 본다.신규 기능 A: 베타 유저 100명 기존 기능 B 수정: 전체 유저 관리자 페이지 C: 내부 10명"어떻게 할 거야?" "음... 신규 기능이 중요할 것 같은데요." "왜?" "새 기능이니까요." 고개 젓는다. "영향도 봐. B는 전체 유저야." "아..." "A는 베타 100명. 장애 나도 롤백 쉬워." "그럼 B부터요?" "응. B 80%, A 15%, C 5%." 적어준다. 판단 기준.영향 받는 사용자 수 장애 시 비즈니스 임팩트 복구 난이도 과거 장애 이력"다음부턴 이렇게 생각해봐." "네." 팀원 키우는 것도 리스크 관리다. 언제까지 내가 다 판단할 순 없다. 실패도 데이터다 작년 여름. 큰 장애 났다. 배포 후 2시간 만에. 검색 기능 먹통. 전체 사용자 영향. 복구 5시간 걸렸다. 포스트모템 회의. 개발팀장이 말한다. "테스트 안 했어요?" "했어요." "뭘?" "메인 시나리오 위주로요." CTO가 묻는다. "왜 못 잡았어요?" "엣지케이스였어요. 특수문자 입력 시." "..." 내 실수다. 인정한다. 리스크 판단 잘못했다. 그날 밤 분석했다.검색 로직 변경: 고위험으로 재분류 특수문자 테스트: 필수 케이스 추가 검색 자동화: 다음 분기 최우선실패는 데이터가 된다. 다음 리스크 판단에 쓴다. 지금은 검색 관련 변경 있으면 무조건 중점 테스트다. 작년 덕분이다. 그 장애. 신입들한테 말한다. "장애 두려워하지 마. 배워." "네." 완벽한 리스크 판단은 없다. 계속 보정한다. 데이터로. 혼자 하는 게 아니다 오전 회의. 기획팀 리드가 묻는다. "이 기능 어때요? 위험해요?" 신규 알림 시스템이다. "단독으로는 중간이에요." "그럼 괜찮네요?" "근데 푸시 서버랑 연동되죠?" "네." "푸시는 작년에 장애 3번이에요." "아..." "전체적으론 중상 리스크예요." 개발팀 리드가 끼어든다. "그럼 어떻게 해요?" "푸시 실패 시나리오 중점 테스트요." "시간은?" "3일이요." "2일 안 돼요?" "푸시 서버 불안정하면 안 돼요." 결국 3일 받았다. 리스크 판단은 혼자 하는 게 아니다. 기획, 개발, 인프라 다 같이 본다. 내 역할은 정리하는 거다. 뿔뿔이 흩어진 정보를. 리스크로 엮는 거. 13년 하면서 배운 거다. QA는 통합 시점이다. 모든 정보가 모이는. 숫자로 말한다 경영진 보고. 분기 1번. 품질 현황 발표한다. 슬라이드 켠다.전분기 대비 장애 감소율: 32% 리스크 기반 테스트 적용 후: 핫픽스 40% 감소 테스트 효율: 30% 향상 (같은 시간, 더 높은 커버리지) 비용 절감: 장애 복구 비용 분기당 1.2억 감소CFO가 묻는다. "어떻게 했어요?" "한정된 리소스를 리스크 높은 곳에 집중했어요." "구체적으로?" "과거 장애 데이터 기반으로 우선순위 정했어요." 고개 끄덕인다. "좋네요. 계속 해주세요." "감사합니다." 숫자 없으면 안 먹힌다. 경영진한테. '열심히 했어요' 소용없다. '32% 줄였어요' 이게 먹힌다. 그래서 기록한다. 다. 장애 건수, 복구 시간, 테스트 커버리지. 리스크 기반 전략의 효과를 증명한다. 숫자로. 이게 내 특기다 퇴근 전. 팀원들 모았다. "수고했어. 이번 배포." "감사합니다." 배포 성공했다. 리스크 높았던 결제, API, 다 통과. 장애 없었다. 신입이 묻는다. "어떻게 알았어요?" "뭘?" "어디가 위험한지요." 웃었다. "13년 했어." "그것만으로요?" "아니. 매번 데이터 쌓고, 분석하고, 보정했어." "..." "너도 하다 보면 돼." 거짓말 아니다. 초반엔 나도 몰랐다. 감으로 했다. 지금은 다르다. 시스템이 있다. 판단 기준이. 리스크 기반 사고방식이. 이게 13년의 무게다. 경력이란 게. 완벽하진 않다. 여전히. 가끔 놓친다. 리스크를. 장애 난다. 예상 못 한 곳에서. 그래도 괜찮다. 다시 배운다. 또. 데이터 쌓는다. 더. 리스크 기반 테스트 전략. 이게 내 특기다. 한정된 시간과 리소스로. 최고의 품질 뽑아낸다. 전문가의 자부심이다. 13년 축적한.내일도 리스크 분석이다. 데이터가 쌓인다. 또.
- 28 Dec, 2025
초등학생 딸 학예회 날, 배포 이슈가 터졌다
오전 9시, 학예회 딸아이가 학교 연극에서 나무 역할을 한다고 했다. 나무가 뭐 대단한 배역이냐고 물었더니, "엄마, 나무 없으면 숲이 안 되잖아"라고 했다. 그래, 네 말이 맞다. 학예회는 오후 2시. 출근하면서 딸한테 약속했다. "엄마 꼭 간다." 딸이 웃었다. 믿는 얼굴이었다. 회사 도착. 슬랙 확인. 개발팀에서 오늘 오후 3시 배포 예정이라고 올렸다. 어제 저녁에 올린 메시지였다. 이게 뭐야.오전 10시, 긴급 미팅 개발 리드한테 전화했다. "배포 일정 언제 정했어요?" "아, 어제 갑자기 경영진에서 빨리 올리래서요." 빨리 올리래서. 그 한마디로 QA 일정은 증발한다. 회의실로 불렀다. 개발팀 3명, 기획 1명. "테스트 커버리지 어떻게 되죠?" "주요 기능은 다 봤어요." "주요 기능만요?" "네, 시간이..." 시간이. 항상 시간이 문제다. 테스트 결과 체크했다. Critical 2건, Major 5건 오픈. "이거 배포하면 장애 납니다." "근데 경영진이..." 경영진이. 또 경영진이다. 결국 협의했다. 오후 5시로 배포 미뤄달라고. 개발 리드가 위로 보고하겠다고 했다. 시계 봤다. 10시 47분. 학예회까지 3시간 남았다.오전 11시 30분, 전화 딸한테 문자 보냈다. "엄마 2시에 꼭 갈게." 답장 왔다. 하트 이모티콘 세 개. 팀원들 불러서 배포 준비 지시했다. "오후 5시 배포로 변경. 4시까지 리그레션 테스트 완료." "팀장님, 시간이 빠듯한데요." "나도 안다. 그래도 해야지." 막내 사원이 물었다. "팀장님은 오늘 오후에 외근 있으시다고..." "응, 2시부터 4시까지. 그 시간엔 내가 없어." 다들 고개 끄덕였다. "딸 학예회시죠?" "어. 나무 역할 한대." 팀원들이 웃었다. "다녀오세요. 저희가 할게요." "Critical만 확인하면 되죠?" "응. 문제 생기면 바로 전화해." 고맙다고 말하려다 참았다. 팀장이 고맙다고 하면 팀원이 미안해한다. 경영진 쪽에서 답 왔다. 배포 5시 승인. 단, 장애 나면 책임은 QA 팀. 책임은 항상 우리 팀이다. 오후 12시, 점심 식당 갔다. 혼자 먹었다. 밥 먹으면서 테스트 케이스 리뷰했다. 동료가 지나가다 물었다. "바빠?" "응, 오늘 배포." "아, 그래? 힘내." 힘내. 다들 그렇게 말한다. 밥 반만 먹고 올라왔다. 팀원들한테 체크리스트 공유했다. 슬랙에 메시지 올렸다. "오후 2-4시 외근. 긴급 시 전화." 아무도 '어디 가세요?' 안 물었다. 다들 안다. 가정의 달에 QA 팀장도 엄마다. 오후 1시 30분, 출발 가방 챙겼다. 노트북, 폰, 충전기. 만약을 위해서. 주차장 가는데 슬랙 울렸다. 개발팀에서 핫픽스 하나 더 올린다고. "Critical 버그 하나 더 고쳤습니다." 고친 거 좋은데, 테스트는 누가 해. 전화했다. "지금 핫픽스 올리면 테스트 시간 없어요." "근데 이거 안 고치면 배포 못 해요." "...알겠습니다. 팀원들한테 공유할게요." 팀원한테 메시지 보냈다. "핫픽스 들어감. 해당 기능 위주로 테스트." "네, 알겠습니다." 차 시동 걸었다. 학교까지 20분. 핸들 잡고 한숨 쉬었다.오후 2시, 강당 학교 도착했다. 2시 5분. 강당 뒤쪽에 겨우 자리 잡았다. 무대에 아이들 올라왔다. 딸아이 찾았다. 뒤에서 세 번째 나무. 초록 옷 입고 팔 벌리고 있다. 웃음 나왔다. 폰 진동 왔다. 슬랙. "팀장님, 핫픽스 테스트 중 이슈 발견." 손 떨렸다. 일어서야 하나. 전화해야 하나. 옆 엄마가 쳐다봤다. 폰 확인했다. "UI 깨짐 현상. 특정 케이스에서만." 답장 쳤다. "Critical? Major?" "Major입니다." "스크린샷 공유. 개발팀 확인 요청." 딸아이가 대사 한다. "저는 숲을 지키는 나무예요." 목소리 작다. 떨린다. 그래도 또박또박 말한다. 다른 엄마들 박수친다. 나도 쳤다. 폰 또 울렸다. 개발팀 답장. "지금 확인 중." 오후 2시 40분, 복도 연극 끝났다. 딸아이가 뛰어왔다. "엄마! 봤어?" "봤지. 나무 진짜 잘했어." 안아줬다. 땀 냄새 난다. "엄마, 사진 찍어." "그래." 사진 찍는데 폰 울렸다. 전화였다. 팀원. "엄마, 전화 왔어." "어, 잠깐만." 딸한테 미안하다고 하고 전화 받았다. "팀장님, 개발팀이 핫픽스 롤백한대요." "이유가?" "고친 거보다 사이드 이펙트가 더 크대요." "...그럼 원래 버그는?" "다음 배포 때 고치기로." 항상 이렇다. 급하게 고치고, 문제 생기고, 다음에 한다고 하고. "알겠어. 그럼 원래 테스트 시나리오대로." "네, 그렇게 진행하겠습니다." 전화 끊었다. 딸이 기다리고 있다. "엄마 회사?" "응, 좀 바빠서." "엄마는 항상 바빠." 할 말이 없었다. 오후 3시 30분, 카페 딸이랑 학교 앞 카페 왔다. 초코 케이크 시켜줬다. "엄마도 먹어." "응, 먹는다." 딸이 케이크 먹으면서 말했다. "엄마, 나 진짜 떨렸어." "그래? 안 떨린 것 같던데." "엄마 있어서 안 떨렸어." 가슴이 뜨끔했다. 폰 봤다. 3시 45분. 5시 배포까지 1시간 15분. 슬랙 확인했다. 팀원들이 테스트 진행 중. "80% 완료. 4시 30분 완료 예정." 답장 쳤다. "고생 많아. 이슈 있으면 바로 연락." 딸이 물었다. "엄마, 또 일해?" "아니, 확인만." 거짓말이다. 지금도 일하고 있다. "엄마는 무슨 일 해?" "응, 프로그램 검사하는 일." "그게 뭔데?" "앱이랑 웹사이트가 잘 작동하는지 확인해." "그럼 엄마가 고치는 거야?" "아니, 개발자 아저씨들이 고쳐. 엄마는 문제 찾는 거." 딸이 고개 끄덕였다. "그럼 엄마도 나무네." "나무?" "응, 연극에서 나무가 없으면 숲이 안 되잖아." "선생님이 그렇게 말씀하셨어." "엄마도 엄마 없으면 프로그램 안 되는 거 아니야?" 할 말이 없었다. 목이 메었다. 오후 4시 30분, 회사 복귀 딸 집에 데려다줬다. 남편이 재택이라 괜찮다고 했다. "딸, 엄마 회사 가야 해." "응, 다녀와." 가방 메고 나오는데 딸이 불렀다. "엄마." "응?" "고마워. 와줘서." 울 뻔했다. 회사 도착. 4시 50분. 팀원들 모여 있다. "상황 어때?" "테스트 완료했습니다. Critical 없어요." "Major는?" "2건 있는데, 배포 가능 수준입니다." 리포트 확인했다. 테스트 커버리지 92%. 괜찮다. 개발 리드한테 전화했다. "배포 가능합니다." "고생하셨어요." 5시 정각. 배포 시작. 모니터 앞에 앉았다. 팀원들도 각자 자리에서 대기. 로그 확인. 에러 없음. 주요 기능 체크. 정상. 사용자 유입. 이상 없음. 30분 지났다. 이슈 없다. 팀원들한테 말했다. "수고했어. 오늘 일찍 들어가." "팀장님은요?" "나는 조금 더 있다가." 다들 퇴근했다. 나도 가방 챙겼다. 오후 7시, 퇴근길 차 안에서 남편한테 전화했다. "저녁 뭐 먹을까?" "딸이 엄마 기다리고 있어." 집 도착했다. 딸이 현관에서 기다리고 있다. "엄마, 일 잘됐어?" "응, 잘됐어." 저녁 먹으면서 남편이 물었다. "오늘 학예회 어땠어?" "좋았지. 딸 나무 역할 진짜 잘했어." 딸이 웃는다. 밥 먹고 딸이랑 TV 봤다. 애니메이션. 공주가 나온다. 왕국을 구한다. 딸이 말했다. "엄마도 회사 구하는 거지?" "...뭐, 비슷하지." 정확히는 회사를 '지키는' 거다. 문제 생기지 않게. 아무도 모르게. 나무처럼. 밤 11시, 일기 딸 재웠다. 남편은 서재에서 코딩 중. 노트북 켰다. 슬랙 확인. 이슈 없음. 모니터링 툴 확인. 안정적. 오늘 잘 넘어갔다. 근데 왜 이렇게 피곤한가. 딸이 "고마워"라고 했을 때, 울 뻔했던 이유를 생각한다. 나는 팀장이다. 팀원 8명 책임진다. 배포 품질 책임진다. 장애 나면 내 책임이다. 그리고 엄마다. 딸 하나 키운다. 학예회 가야 한다. 나무 역할 봐줘야 한다. 둘 다 잘하고 싶은데, 둘 다 못하고 있는 것 같다. 팀원들한테 미안하다. 학예회 때문에 자리 비웠다. 장애 나면 어쩔 뻔했나. 딸한테 미안하다. 강당에서도 폰 봤다. 엄마는 항상 바쁘다고 한다. 남편은 괜찮다고 한다. "당신 충분히 잘하고 있어." 근데 나는 모르겠다. 무엇이 충분한 건지. 밤 12시, 생각 13년 했다. QA 13년. 팀장 3년. 처음엔 테스터였다. 버그 찾고, 리포트 쓰고, 개발자한테 욕먹고. 그게 다였다. 지금은 다르다. 전략 세운다. 리소스 배분한다. 경영진한테 보고한다. 팀원 성과 관리한다. 그리고 딸 키운다. 오늘 딸이 말했다. "엄마도 나무네." 맞다. 나는 나무다. 숲이 있으려면 나무가 있어야 한다. 품질이 있으려면 QA가 있어야 한다. 근데 나무는 눈에 안 띈다. 숲만 보인다. QA도 마찬가지다. 장애 없으면 아무도 모른다. 우리가 뭘 했는지. 장애 나면 그때 찾는다. "QA 뭐 했어?" 오늘도 그랬다. 배포 잘 됐다. 아무도 연락 안 왔다. 그게 성공이다. 조용한 게 성공이다. 딸은 무대에서 박수받았다. 나는 모니터 앞에서 안도했다. 둘 다 보람 있다. 둘 다 힘들다. 내일 내일도 출근한다. 9시 출근. 스프린트 리뷰 있다. 다음 배포 계획 세운다. 자동화 도입 건 다시 제안한다. 딸은 학교 간다. 방과 후 수업 있다. 남편이 데리러 간다. 저녁엔 같이 밥 먹는다. TV 본다. 딸 재운다. 그리고 다시 노트북 켠다. 이게 내 일상이다. 팀장, 엄마, QA. 완벽하지 않다. 둘 다 100% 못한다. 근데 괜찮다고 생각하려 한다. 딸이 말했다. "엄마 있어서 안 떨렸어." 팀원이 말했다. "팀장님 있어서 든든해요." 그 말이면 충분하다. 충분하다고 믿는다. 나는 나무다. 숲을 지킨다.오늘 배포 무사히 끝났다. 딸 학예회도 봤다. 둘 다 해냈다. 그걸로 됐다.
- 27 Dec, 2025
QA 자동화 투자, 언제까지 기다려야 하나
QA 자동화 투자, 언제까지 기다려야 하나 또 반려됐다 예산 요청서를 냈다. 세 번째다. 결과는 동일. "내년에 검토하겠습니다." 작년에도 들었던 말이다. 재작년에도 들었다. QA 자동화 도구 투자 건이다. 현재 수동 테스트 비중이 70%다. 회귀 테스트만 해도 팀원 3명이 2주를 쓴다. 계산해봤다. 한 달에 수동 테스트 공수가 팀 전체 리소스의 40%다. 이걸 자동화하면 20%로 줄어든다. 남는 시간에 탐색적 테스트를 더 할 수 있다.CFO한테 설명했다. "ROI가 명확하지 않네요." 명확하지 않다니. 수치로 다 보여줬는데. 인건비 절감액까지 계산했다. 도구 도입 비용 대비 2년 안에 회수된다. 장애 감소율까지 예측했다. 그래도 안 된다고 한다. "가시적 효과가 불분명"하단다. 가시적 효과. 지금 팀원들이 수동으로 클릭하는 게 가시적이란 건가. 악순환의 시작 자동화가 없으니 수동 테스트만 한다. 수동 테스트만 하니 시간이 부족하다. 시간이 부족하니 품질이 떨어진다. 품질이 떨어지니 장애가 난다. 장애가 나니 QA 팀이 욕먹는다. 욕먹으니 "QA 인력 충원이 필요하다"고 말한다. 그럼 답이 온다. "인력보다 자동화로 해결하세요." 자동화 예산 달라고 하면? "ROI를 보여주세요." 이게 뭐 하는 짓인가.지난주에 장애가 났다. 결제 프로세스 테스트를 놓쳤다. 수동으로 300개 케이스를 확인하다 빠뜨렸다. 회의가 소집됐다. "왜 놓쳤습니까?" 설명했다. "회귀 테스트 케이스가 너무 많습니다. 자동화가 필요합니다." 대답이 왔다. "그건 변명이고, 프로세스 개선으로 해결하세요." 프로세스로 해결할 수 있으면 진작 했다. 사람이 300개를 2주 안에 다 보는 게 물리적으로 불가능하다. 집에 와서 남편한테 말했다. "자동화하면 해결될 걸 왜 안 해주는 건지 모르겠어." 남편이 말했다. "너네 회사 개발팀도 CI/CD 투자 2년 걸렸어. 다 그래." 그게 위로가 되나. ROI의 함정 경영진은 ROI를 원한다. 명확한 숫자를 원한다. 그래서 계산했다. 자동화 도구 라이선스 비용: 연 3000만원 구축 비용: 초기 5000만원 유지보수 인력: 연 2000만원 총 투자액: 1년차 1억원, 2년차부터 연 5000만원 효과는? 수동 테스트 시간 50% 감소. 팀원 1인당 월 40시간 절감. 8명이니까 월 320시간. 연봉 평균 6000만원으로 계산하면 시간당 인건비 약 3만원. 월 960만원 절감, 연 1억 1500만원. 2년이면 본전이다. 3년차부터는 순이익이다.이 계산을 보여줬다. CFO가 물었다. "장애 감소는 어떻게 측정하죠?" 말했다. "자동화하면 회귀 테스트 커버리지가 올라갑니다. 현재 60%에서 90%로." "그게 장애 감소로 직결되나요?" 직결된다. 당연히 직결된다. 하지만 증명할 데이터가 없다. 아직 자동화를 안 해봤으니까. CFO가 말했다. "다른 회사 사례를 가져오세요." 가져왔다. 카카오, 네이버, 쿠팡 사례. 전부 자동화 투자 후 품질 지표 개선됐다. "우리 회사랑은 다르죠." 뭐가 다른데. 결국 ROI는 함정이다. 증명할 수 없는 걸 증명하라고 한다. 자동화를 해봐야 ROI를 알 수 있는데 ROI를 보여줘야 자동화를 할 수 있다. 닭이 먼저냐 달걀이 먼저냐. 팀원들은 지쳐간다 팀원들은 안다. 자동화하면 일이 편해진다는 걸. 신입 팀원이 물었다. "팀장님, 셀레니움 공부하고 있는데요. 회사에서 쓸 수 있나요?" 말했다. "개인 프로젝트로는 가능해. 회사 공식 도구는 아직이야." "언제 도입되나요?" "모르겠어. 예산이 안 나와." 신입의 눈빛이 꺼졌다. 이게 몇 번째인지 모르겠다. 의욕 있는 팀원들이 자동화를 배워온다. 그런데 회사에선 못 쓴다. 수동으로 클릭하고 엑셀에 결과 적는다. 이게 2024년에 QA 팀이 하는 일이다. 중견 팀원은 이직 준비 중이다. "팀장님, 죄송한데요. 다른 회사에서 제안이 왔어요." "자동화 환경이 잘 되어 있대요." 말렸다. 그런데 말릴 명분이 없었다. 우리 팀에서 배울 게 없다. 수동 테스트 고수가 되는 것 말고는. 이직률이 올라간다. 팀원이 나가면 또 뽑아야 한다. 교육 기간 3개월. 그동안 남은 팀원들이 업무를 커버한다. 자동화 투자 안 해서 생기는 비용이다. 보이지 않는 비용. CFO는 이걸 ROI에 안 넣는다. 우리끼리 시작했다 기다릴 수 없었다. 팀원들이랑 회의했다. "우리끼리 해보자." "오픈소스 도구로." 셀레니움으로 시작했다. 팀원 2명이 주도했다. 업무 시간 20%를 자동화 스크립트 작성에 썼다. 3개월 만에 주요 시나리오 50개를 자동화했다. 회귀 테스트 시간이 2주에서 3일로 줄었다. 수치를 정리해서 다시 보고했다. "실제로 이렇게 효과가 있습니다." 반응이 왔다. "좋네요. 그럼 계속 오픈소스로 하시죠." 허탈했다. 오픈소스로는 한계가 있다. UI 테스트만 가능하다. API, 성능, 보안 테스트는 전문 도구가 필요하다. 리포팅 기능도 없다. 스크립트 유지보수도 손이 많이 간다. 팀원 2명이 자동화 스크립트 관리하느라 다른 일을 못 한다. 자동화를 해도 결국 인력이 부족하다. 제대로 된 도구가 없으니까. 다시 보고했다. "전문 도구가 필요합니다." "성과 더 보여주시고요." 성과를 더 보여주려면 더 많은 스크립트가 필요하다. 더 많은 스크립트를 만들려면 도구가 필요하다. 또 함정이다. 다른 팀은 된다 개발팀은 CI/CD 구축했다. 예산이 나왔다. 깃랩 프리미엄, 쿠버네티스 클러스터, 모니터링 도구. 물었다. "개발팀은 어떻게 예산 받았어요?" 개발팀 리드가 말했다. "배포 자동화 안 하면 서비스 못 돌린다고 했죠." 그렇게 말할 수 있구나. 우리는? 테스트 자동화 안 해도 서비스는 돌아간다. 품질이 떨어질 뿐이다. 품질은 눈에 안 보인다. 장애 나기 전까지는. 인프라팀도 예산 받았다. 모니터링 도구 APM 솔루션. 연 5000만원짜리. "장애 감지 시간 단축"이 명분이었다. 우리는 "장애 예방"인데 안 된다. 감지는 되고 예방은 안 되는 게 이상하다. 마케팅팀도 예산 받았다. 광고 자동화 플랫폼. 연 8000만원. "매출 증대 효과"가 명분이었다. 우리는 매출을 늘리는 게 아니라 지키는 팀이다. 지키는 건 티가 안 난다. QA는 항상 그렇다. 잘하면 당연하고 못하면 욕먹는다. 예산도 마찬가지다. 개발, 인프라, 마케팅은 투자다. QA는 비용이다. 언제까지 기다려야 하나 다음 분기 예산 회의가 다가온다. 또 요청할 것이다. 네 번째다. 이번에는 뭐라고 하려나. "조금만 더 성과 보여주세요"일까. "내년에 본격 검토하겠습니다"일까. 팀원들한테 뭐라고 말해야 하나. "조금만 더 기다려"? 벌써 3년을 기다렸다. 업계 동향을 본다. 다른 회사들은 AI 기반 테스트 자동화를 한다. 우리는 아직 셀레니움도 제대로 못 쓴다. 격차가 벌어진다. 우리 팀원들의 경쟁력도 떨어진다. 이직한 팀원한테 연락이 왔다. "팀장님, 여기 진짜 좋아요. 자동화 환경 완벽해요." "팀장님도 이직 고려해보세요." 고민된다. QA 리드로 13년 일했다. 이 회사에서 팀을 키웠다. 하지만 투자받지 못하는 팀을 이끄는 게 의미가 있나. 집에 와서 남편한테 말했다. "나도 이직할까봐." 남편이 말했다. "투자 안 하는 회사는 다 그래. 떠나는 게 맞을 수도." 근데 어디를 가도 비슷하지 않을까. QA는 어디서나 우선순위가 낮다. 아니다. 지금보다 나은 곳은 있다. 최소한 자동화 환경은 있는 곳. 이력서를 꺼냈다. 수정할 게 많다.예산은 언제 나올까. 팀원들은 몇 명이나 더 나갈까.
- 26 Dec, 2025
수요일 오후 2시, 예상 외의 이슈 리포트가 들어왔다
수요일 오후 2시 수요일 오후 2시 37분. 슬랙 알림이 울렸다. "결제 오류 접수 증가 중" 커피를 마시던 손이 멈췄다. 지난주 화요일 배포했던 거다. 5일 전이다. 5일 동안 멀쩡했다. QA 통과했고, 스모크 테스트도 깔끔했다. 모니터링 지표도 정상이었다. 그런데 지금 터졌다.심장이 쿵 내려앉는 느낌. 이 느낌, 13년 차인데도 익숙해지지 않는다. 개발팀 채널로 들어갔다. 이미 난리였다. "특정 카드사에서만 발생" "오전부터 접수됐는데 패턴 파악 안 됨" "CS 문의 28건" 28건. 생각보다 많다. 회의실로 갔다. 개발 리드, 기획 리드, 인프라 담당자가 이미 모여 있었다. "QA에서 이거 케이스 있었나요?" 제일 먼저 날아오는 질문이다. 항상 이 질문이다. 테스트 케이스를 뒤졌다 TestRail 열었다. 결제 관련 케이스 147개. 카드사별 테스트? 있다. 주요 3사는 다 했다. 근데 문제가 생긴 카드사는 점유율 4위다. 우선순위에서 밀렸던 거다. "시간 부족해서 주요 3사만 했습니다. 리스크 기반으로 우선순위 정했고요." 내 목소리가 변명처럼 들렸다. 개발 리드가 고개를 끄덕였다. "그럴 수밖에 없죠. 일정이 그랬으니까." 기획 리드는 아무 말 없이 노트북만 봤다. 이럴 때 제일 답답하다. 욕을 하면 오히려 속이 후련한데, 다들 이해한다는 표정이다."원인 파악부터 하겠습니다." 회의실 나와서 팀원들 불렀다. "지난주 배포 건, 결제 쪽 다시 체크한다. 4위 카드사 중심으로." 수진이가 물었다. "전부 다요?" "응. 전부." 오후 내내 로그를 뒤졌다. 개발팀이랑 같이. 오후 4시쯤 원인 찾았다. API 타임아웃이었다. 특정 카드사는 응답 시간이 평균 3.2초였다. 다른 카드사는 1.5초. 우리 타임아웃 설정은 3초. 정확히 경계선이었다. 그래서 간헐적으로 터진 거다. "이거 성능 테스트에서 안 잡혔나요?" 또 이 질문이다. 성능 테스트는 했다. 근데 카드사별로는 안 했다. 외부 API까지 포함한 E2E 성능 테스트는 리소스가 너무 많이 든다. "타임아웃 3초면 넉넉하다고 판단했습니다. 일반적으로는 맞는 수치고요." "근데 이 카드사는 아니었네요." "...네."개발팀이 핫픽스 준비했다. 타임아웃 5초로 늘리기로. "오늘 저녁 8시 배포 가능합니다." "QA는 얼마나 걸려요?" 민수가 나를 봤다. 나도 민수를 봤다. "1시간이면 됩니다. 타임아웃 수치만 바뀐 거니까." "그럼 7시까지 QA 부탁드려요." 지금 5시 20분이다. 팀원들한테 미안했다 저녁 약속 있던 애들도 있었을 거다. 수진이는 오늘 일찍 퇴근하려고 했다. 아이 학원 상담이 있다고 했다. "미안. 오늘 좀 늦어질 것 같아." "괜찮아요. 남편한테 연락할게요." 괜찮을 리가 없다. 근데 다들 괜찮다고 한다. 이게 제일 미안하다. 핫픽스 QA 시작했다. 4위 카드사 중심으로 결제 플로우 전체 체크. 타임아웃 5초로 바뀐 거 확인. 응답 시간 측정. 3.2초, 3.4초, 3.1초. 다 통과한다. 다른 카드사도 영향 없는지 확인. 주요 3사, 전부 체크. 6시 50분. 테스트 완료. "배포 가능합니다." 개발 리드가 고맙다고 했다. 경영진한테 보고 올라갔고, 8시 정각에 배포 시작. 8시 30분. 배포 완료. 스모크 테스트. 결제 플로우 전부 정상. 모니터링 지표 확인. 오류율 떨어지기 시작했다. 9시 10분. CS 문의 멈췄다. 퇴근길 10시 넘어서 퇴근했다. 엘리베이터 안에서 민수가 말했다. "팀장님 잘못 아니에요." "알아." "진짜로요. 저희가 다 한 건 아니지만, 우선순위는 맞게 정한 거잖아요." "응." 근데 가슴 한구석이 답답하다. 우선순위가 맞았다는 건 안다. 리스크 기반 테스트 전략도 맞았다. 주요 3사 커버하면 95% 사용자 포함되는 거다. 근데 나머지 5%는? 집에 와서 남편한테 얘기했다. "우리가 놓친 거 같아서." "시간이 부족했잖아. 네 잘못 아니야." "알아. 근데 결국 터진 건 사실이니까." 남편은 개발자라서 이해한다. 완벽한 테스트는 없다는 거. 시간과 리소스는 한정돼 있다는 거. 근데 이해하는 것과 마음이 편한 건 다르다. 다음 날 아침 목요일 아침. 출근했다. 어제 이슈 포스트모템 회의가 10시에 잡혀 있었다. 회의실에 들어갔다. 개발팀, 기획팀, 인프라팀 전부 모였다. 원인 분석부터 시작했다. "외부 API 응답 시간 변동성을 충분히 고려하지 못했습니다." 재발 방지책? "카드사별 성능 테스트 케이스 추가하겠습니다." "타임아웃 설정값 리뷰하겠습니다." "외부 API 의존성 높은 기능은 별도 모니터링 강화하겠습니다." CTO가 물었다. "QA 리소스는 충분했나요?" 순간 머뭇거렸다. "...일정 내에서는 최선을 다했습니다." "그게 아니라, 리소스가 충분했냐는 질문입니다." "부족했습니다." 처음으로 솔직하게 말했다. "카드사별 성능 테스트까지 하려면 최소 3일은 더 필요했습니다. 자동화 인프라도 부족하고요." CTO가 끄덕였다. "알겠습니다. 다음 분기 계획에 반영하겠습니다." 점심시간 팀원들이랑 밥 먹으러 갔다. 수진이가 물었다. "팀장님, 어제 많이 힘들었죠?" "응. 너도 고생했어. 학원 상담은?" "남편이 다녀왔어요. 괜찮아요." 미안했다. 근데 고맙기도 했다. 민수가 말했다. "그래도 우리 빨리 찾았잖아요. 다른 팀이었으면 더 오래 걸렸을 거예요." "맞아. 그건 인정." 점심 먹고 돌아오는 길에 생각했다. QA의 책임은 어디까지일까. 모든 버그를 다 찾아야 할까? 불가능하다는 거 안다. 근데 버그가 터지면 결국 QA 탓이다. 우선순위를 정해서 테스트한다. 리스크 기반으로. 이게 맞는 방법이다. 근데 우선순위에서 밀린 부분에서 이슈가 터지면? 그것도 QA 책임이다. 오후 회의 오후에 팀 회의 했다. "어제 건 우리 잘못 아니야. 근데 배울 건 배워야지." 테스트 전략 다시 짰다. 외부 API 의존성 높은 기능은 별도 체크리스트 만들기로. 타임아웃, 재시도 로직, 에러 핸들링, 전부 명시적으로 확인. 카드사별 테스트는 자동화 목록에 추가. 다음 분기에 구축 목표. "근데 솔직히 말하면." 다들 나를 봤다. "100% 막을 순 없어. 우리가 아무리 잘해도." "...알아요." "그래도 최선은 다해야지. 그게 우리 일이니까." 다들 고개 끄덕였다. 저녁 퇴근길 7시에 퇴근했다. 엘리베이터에서 개발 리드 만났다. "어제 고생했어요." "아니에요. 당연한 거죠." "품질팀 없었으면 더 큰일 났을 거예요. 빨리 찾아줘서 고마워요." 고맙다는 말이 위로가 됐다. 근데 동시에 씁쓸했다. 빨리 찾은 게 아니라 애초에 못 찾은 건데. 집에 와서 샤워했다. 거울 보면서 생각했다. 13년 차 QA 팀장. 8명 팀 운영하고, 품질 전략 세우고, 이슈 대응하고. 여전히 버그 하나에 이렇게 마음이 무겁다. 이게 책임감인지 죄책감인지 모르겠다. 아마 둘 다인 것 같다. 금요일 아침 출근했다. 어제 배포한 기능 모니터링 지표 확인했다. 에러율 0.02%. 정상 범위다. CS 문의도 없다. 안정적으로 돌아가고 있다. 근데 마음이 완전히 편하진 않다. 다음에 또 비슷한 일이 생기면 어떡하지? 그때도 우리가 놓치면? 슬랙에 메시지 왔다. CTO한테. "QA 자동화 인프라 투자 건, 다음 주 예산 회의에서 논의하겠습니다." 작은 진전이다. 자동화가 모든 걸 해결해주진 않는다. 근데 최소한 반복 작업은 줄어든다. 그럼 우리는 더 중요한 테스트에 집중할 수 있다. 카드사별 성능 테스트 같은 거. 점심시간에 QA 커뮤니티 게시판 봤다. 비슷한 고민하는 사람들 많더라. "배포 후 일주일 뒤에 터진 버그, 이거 QA 책임인가요?" 댓글들 읽었다. "당연히 아니죠. 일주일 동안 멀쩡했으면..." "근데 결국 QA가 해명해야 되더라고요." "완벽한 테스트는 없어요. 다들 너무 자책하지 마세요." 자책하지 말라고. 근데 자책하게 된다. 이게 QA의 숙명인가 싶다. 이번 주를 돌아보며 수요일 오후 2시 37분. 그 슬랙 알림 이후로 48시간이 지났다. 이슈는 해결됐다. 재발 방지책도 세웠다. 예산 확보 논의도 시작됐다. 객관적으로 보면 잘 대응한 거다. 근데 여전히 마음 한구석이 불편하다. "우리가 놓친 게 아닐까?" 이 질문이 머릿속에서 떠나지 않는다. 13년을 일했는데도. 아마 30년을 일해도 똑같을 것 같다. QA는 그런 일이다. 완벽을 추구하지만 완벽할 수 없는. 모든 버그를 찾으려 하지만 다 찾을 수 없는. 그래도 계속 찾아야 하는. 책임감과 죄책감 사이 어딘가에서 매일 일하는.다음 주 화요일 배포도 준비해야 한다. 이번엔 더 꼼꼼히 보자.
- 25 Dec, 2025
'품질 메트릭스 보면' - 데이터로 말하는 QA
품질 메트릭스 보면 오전 10시. 경영진 보고 미팅이다. 준비했다. 엑셀 3개, PPT 15장, 그래프 7개. 어젯밤 11시까지 걸렸다. "이번 분기 결함 유입률이 전 분기 대비 18% 증가했습니다." 슬라이드를 넘긴다. CFO가 눈썹을 찌푸린다. "그래서 품질이 나빠졌다는 거야?" "아닙니다. 검출률이 올라간 겁니다. 배포 후 결함은 23% 감소했습니다." 다음 슬라이드. 초록색 그래프가 뜬다. "개발 단계에서 더 많이 잡았다는 얘기죠."개발 본부장이 끄덕인다. CFO는 여전히 찌푸린다. "그럼 QA 기간이 길어진 건가?" "평균 2.3일 증가했습니다. 하지만 장애 대응 시간이 평균 8시간 줄었습니다." 계산기를 두드린다. 시연하듯이. "장애 한 건당 투입 인력 평균 15명, 시급 5만원 기준으로 장애 20건 감소하면... 월 1200만원 절감입니다." CFO의 표정이 풀린다. 숫자로 말해야 한다. 관리자가 되고 배운 것. "품질이 좋아요"는 안 먹힌다. "NPS가 3.2점 상승했습니다"는 먹힌다. "버그가 많았어요"는 약하다. "치명도 High 결함이 전월 대비 34% 증가했습니다"가 강하다. 엑셀과의 동거 매주 월요일 오전. 데이터 정리하는 시간이다. Jira에서 추출한다. TestRail에서 가져온다. 슬랙 대화 로그도 뒤진다.총 테스트 케이스: 2,847개 실행률: 94.3% 통과율: 87.6% 결함 검출률: 12.4% 재테스트 비율: 8.9% 회귀 결함: 3건엑셀 시트가 8개다. 피벗 테이블이 12개다. 팀원들은 묻는다. "팀장님, 이거 왜 매주 해요?" "경영진이 요청하면 바로 줘야 해서." 진짜 이유는 다르다. 데이터 없으면 진다. 조직 정치에서. "QA 기간 줄입시다." 개발 본부장이 말한다. "품질 메트릭스 보면..." 내가 대응한다. "지난 3개월간 테스트 기간 단축한 스프린트는 평균 배포 후 결함이 2.8배 높았습니다. 이번 분기 장애 중 67%가 테스트 기간 부족 때문이었고요." 그래프를 보여준다. 빨간색으로 강조된. "한 번의 Critical 장애가 평균 3,200만원의 비용을 발생시킵니다. 고객 이탈률까지 포함하면..." 말을 흐린다. 계산은 이미 해뒀다. 개발 본부장이 물러선다.데이터는 방패다. 내 팀을 지키는. 메트릭스의 정치학 목요일 오후. 제품 기획팀과 미팅이다. "이번 기능, 다음 주 배포 가능할까요?" 기획 리드가 묻는다. 웃으면서. "품질 메트릭스 보면..." 내가 답한다. "현재 미해결 결함 37건. High 우선순위가 12건입니다. 커버리지는 78%고요." 기획 리드의 웃음이 굳는다. "78%면 괜찮은 거 아닌가요?" "내부 기준은 85%입니다. 결제 관련 기능이라 더 높아야 하고요." 노트북을 돌린다. 화면을 보여주면서. "지난 분기 커버리지 80% 미만 상태로 배포한 기능 중 73%에서 운영 이슈가 발생했습니다." 그래프가 말한다. 내 대신. 기획 리드가 한숨을 쉰다. "그럼 언제 가능해요?" "High 결함 해결되면 월요일. 커버리지 85% 채우면 수요일." "수요일은 너무 늦어요." "그럼 리스크 수용하시는 겁니까?" 메모를 꺼낸다. 만년필로 쓴다. "리스크 수용 결정하시면 문서로 남겨야 합니다. 배포 후 이슈 발생 시 책임 소재 명확히 해야 해서요." 기획 리드가 말을 멈춘다. "...수요일에 배포하죠." 데이터는 무기다. 협상의. 회의가 끝나고. 복도에서 개발 리드를 만났다. "리스크 수용 문서 이야기는 좀 과했던 거 아니에요?" 웃었다. 쓸쓸하게. "13년 하면서 배웠어. 데이터 없이는 안 들어. 문서 없이는 책임만 떠안아." "품질 지키려면 정치를 해야 하나요?" "정치가 아니야. 생존이지."숫자로 말하는 법 밤 11시. 아직도 사무실이다. 다음 주 경영 회의 자료를 만든다. 제목: "Q3 품질 개선 성과 및 Q4 전략" 1페이지: 요약배포 후 결함 23% ↓ 고객 불만 15% ↓ 테스트 자동화율 41% ↑ 평균 장애 대응 시간 8시간 ↓숫자만 있다. 설명은 없다. 2페이지: 비용 절감 효과장애 대응 인건비: 월 1,200만원 절감 고객 이탈 방지: 분기 8,500만원 가치 반복 테스트 자동화: 인력 1.2명 효율화회계 용어로 번역했다. CFO가 좋아하는 언어로. 3페이지: 벤치마크업계 평균 테스트 커버리지: 76% 우리 회사: 89% 업계 Top 10%: 92%비교 데이터. 경쟁심을 자극하는. 4페이지: 리스크 매트릭스High Risk & High Impact: 2개 항목 Medium Risk: 7개 항목 대응 방안: 각 항목별 구체적 계획리스크는 숨기지 않는다. 관리한다는 걸 보여준다. 저장했다. 백업도 세 군데에. 팀원 메시지가 온다. "팀장님 아직도 회사세요? 자료 만드시는 거예요?" "응. Q4 전략 발표 준비." "매번 저렇게 준비하세요?" "안 하면 밀려. 데이터 없으면 '느낌'으로 판단당해." "힘드시겠어요." 웃었다. 쓴웃음. "이게 관리자야. 현업은 코드로 말하지. 관리자는 엑셀로 싸워." 데이터의 그림자 금요일 오전. 팀 회의다. "다들 수고했어. 이번 주 배포 무사히 끝났어." 박수를 친다. 팀원들이 따라 친다. "품질 메트릭스 보면..." 슬라이드를 켠다. 팀원들이 웃는다. 내 입버릇이 됐다. "이번 주 테스트 실행률 96.2%. 지난주보다 2.1%p 상승. 결함 검출률 14.3%. 평균보다 1.9%p 높아." 칭찬한다. 구체적으로. "특히 민준씨 담당 결제 모듈. 엣지 케이스 3건 추가로 잡아줬어. Critical 결함 2건 사전 방지했고." 민준이 쑥스럽게 웃는다. "수진씨 자동화 스크립트 덕분에 회귀 테스트 시간 4.2시간 단축됐어. 이거 이번 분기 성과로 강조할게." 수진이 고개를 끄덕인다. 숫자로 칭찬한다. 애매한 칭찬보다 강하다. "근데 팀장님." 다희가 손을 든다. "왜?" "저희가 일 잘하는 건... 숫자로만 보여야 하나요?" 멈칫했다. "무슨 뜻이야?" "제가 이번에 UX 개선 의견 3개 냈잖아요. 그거는 품질 메트릭스에 안 잡히는데..." 말이 막혔다. 다희 말이 맞다. 품질은 숫자만이 아니다. 사용자 경험, 직관적 UI, 부드러운 인터랙션. 하지만 경영진은 그걸 모른다. "너 의견 좋았어. 기획팀도 채택했잖아." "네. 근데 그게 제 성과 평가에..." "반영할게. 정성 평가에." 약한 대답이다. 나도 안다. 정량 평가가 강하다. 숫자가 들어간 성과가. "다희야. 솔직히 말할게." 팀원들이 집중한다. "회사는 숫자로 판단해. 불공평하지. 근데 현실이야." "그럼 숫자로 안 나오는 일은 안 하는 게 나은 건가요?" 대답하지 못했다. 데이터의 그림자다. 측정되지 않는 가치는 인정받지 못한다. 메트릭스 너머 주말이다. 집에서 쉰다. 딸아이가 묻는다. "엄마는 회사에서 뭐 해?" "품질 확인하는 일." "품질이 뭔데?" 설명하려다 멈췄다. "물건이 잘 작동하는지 보는 거야." "그럼 고장 나면 엄마가 고쳐?" "아니. 고치는 건 아빠 같은 개발자가 해. 엄마는 고장 날 것 같은 거 미리 찾아내." "그럼 엄마가 없으면 어떻게 돼?" 생각했다. "물건이 자주 고장 나. 사람들이 짜증 내지." "그럼 엄마 중요하네!" 웃었다. 아이는 단순하다. 남편이 옆에서 커피를 내민다. "어제도 늦게 왔더라. 자료 만들었어?" "응. Q4 전략 발표." "또 품질 메트릭스?" "웃기지. 13년 했는데 아직도 증명해야 해." "개발도 비슷해. 코드 리뷰 통과해도 성능 지표 안 나오면 인정 안 받아." "너는 그래도 결과물이 보이잖아. 기능이 생기잖아." "너도 결과물 있어. 장애가 안 나는 거." 한숨을 쉬었다. "장애 안 나는 게 성과야. 웃긴 거지. 안 나야 정상인데." "그럼 메트릭스는 왜 만들어?" "안 만들면 'QA가 뭐 하는지 모르겠다'고 해." "만들면?" "'숫자에 집착한다'고 하지." 남편이 웃는다. 씁쓸하게. "딜레마네." "관리자의 숙명이야." 데이터가 말하지 못하는 것 월요일 아침이다. 출근했다. 메일이 와 있다. CEO 이름으로. "지난 분기 품질 성과 우수팀 선정: QA팀" 상품권 50만원어치다. 팀원들과 나눠 가지라고. 기쁘다. 솔직히. 인정받은 기분이다. 숫자가 증명해줬다. 하지만 찝찝하다. 우리 팀이 한 일이 숫자만은 아닌데. 개발팀과 새벽까지 이슈 분석했던 것. 기획팀 요구사항 명확히 하려고 5번 미팅 잡았던 것. 신입 개발자 온보딩 도와줬던 것. 품질 메트릭스에 안 나온다. 팀 회의에서 공유한다. "이번 분기 우수팀 받았어. 다들 수고했어." 환호성이다. 박수가 터진다. "상품권은 똑같이 나눠. 회식도 하자." "팀장님 덕분이에요!" 아니다. 팀원들 덕분이다. 하지만 경영진이 본 건 내가 만든 자료다. "이번 성과가 데이터로 입증됐어. 근데..." 말을 이었다. "우리가 한 일이 숫자만은 아니야. 협업하고, 소통하고, 문제 해결한 거." "근데 그게 평가되려면 결국 숫자로..." 수진이 말한다. "맞아. 현실은 그래. 그래서 내가 메트릭스 만들어." "타협하시는 거예요?" "타협 아니야. 번역이지." 팀원들이 고개를 갸우뚱한다. "우리가 한 일을 회사가 이해하는 언어로 바꾸는 거야. 숫자로." "그럼 숫자가 안 나오는 일은?" "그것도 중요해. 계속 해. 근데 성과 어필할 땐 숫자 필요해." "이중 잣대 같은데요." 웃었다. 쓴웃음. "관리자가 되면 알아. 이상과 현실 사이에서 줄타기하는 거야." 메트릭스라는 도구 점심시간이다. 혼자 먹는다. 핸드폰을 본다. QA 커뮤니티에 글이 올라왔다. "QA는 왜 항상 증명해야 하나요?" 댓글이 달린다. "개발은 기능으로 보여주잖아요. QA는 뭘로 보여줘요?" "품질 메트릭스 만들어 보세요." "숫자로 말하면 인정받아요." 내가 댓글을 단다. "메트릭스는 도구일 뿐입니다. 품질 그 자체는 아니에요." 누군가 답글을 단다. "그럼 왜 만드세요?" 타이핑한다. 지우고. 다시 쓴다. "안 만들면 우리 일이 안 보여요. 보이지 않으면 인정받지 못해요. 인정받지 못하면 투자받지 못하고요." "그럼 결국 정치 아닌가요?" 멈칫했다. 정치라는 단어가 불편하다. 하지만 틀린 말은 아니다. "정치라기보다... 커뮤니케이션이에요. 경영진이 이해하는 방식으로 말하는 거죠." "피곤하시겠어요." "피곤하죠. 근데 내 팀 지키려면 해야 해요." 답글을 올렸다. 핸드폰을 내려놓았다. 13년 했다. 여전히 증명한다. 언제쯤 QA의 가치가 당연하게 인정받을까. 언제쯤 메트릭스 없이도 신뢰받을까. 모르겠다. 지금은 엑셀을 켜야 할 시간이다.품질 메트릭스는 내 방패이자 무기다. 하지만 가끔 묻는다. 숫자 너머의 가치는 언제쯤 보일까.