Showing Posts From
리더십
- 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% 못한다. 근데 괜찮다고 생각하려 한다. 딸이 말했다. "엄마 있어서 안 떨렸어." 팀원이 말했다. "팀장님 있어서 든든해요." 그 말이면 충분하다. 충분하다고 믿는다. 나는 나무다. 숲을 지킨다.오늘 배포 무사히 끝났다. 딸 학예회도 봤다. 둘 다 해냈다. 그걸로 됐다.
- 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는 그런 일이다. 완벽을 추구하지만 완벽할 수 없는. 모든 버그를 찾으려 하지만 다 찾을 수 없는. 그래도 계속 찾아야 하는. 책임감과 죄책감 사이 어딘가에서 매일 일하는.다음 주 화요일 배포도 준비해야 한다. 이번엔 더 꼼꼼히 보자.
- 21 Dec, 2025
남편도 개발자인데, 왜 나의 일을 이해 못 할까
남편은 개발자인데 남편도 개발자다. 나도 IT 업계 13년차다. 같은 업계니까 서로 이해할 줄 알았다. 착각이었다. 오늘도 저녁 먹다가 말했다. "오늘 장애 터져서 새벽 2시까지 일했어." 남편이 물었다. "네가 뭘 잘못한 건데?" 그 순간 숟가락 놓을 뻔했다.개발자는 만든다, QA는 막는다 남편은 이렇게 생각한다. 개발자가 코드 짜면, QA가 테스트한다. 단순하다고 본다. 틀렸다. 내가 하는 일은 이거다.8명 팀원 일정 관리 개발팀이랑 기획팀 사이 조율 리스크 기반 테스트 전략 수립 장애 발생하면 원인 분석 재발 방지 프로세스 만들기 품질 메트릭스 리포팅 자동화 투자 예산 싸움 일정 압박 속 품질 기준 지키기남편은 모른다. 개발자는 기능 하나 완성하면 끝이다. QA는 끝이 없다는 걸. 배포 전까지 내 책임. 배포 후 장애도 내 책임. 품질 이슈는 결국 QA 팀장 책임이다. 남편한테 설명했다. "나는 만드는 게 아니라 지키는 거야." "뭘?" "서비스 품질." 이해 못 한다는 표정이었다.코드는 내꺼, 품질은 우리꺼 남편은 말한다. "내가 짠 코드는 내 책임이지." 자랑스럽게 말한다. 부럽다. QA는 다르다. 품질은 협업의 결과다. 개발이 잘못 짜도 내 책임. 기획이 스펙 바꿔도 내 책임. 일정이 촉박해서 못 잡아도 내 책임. 지난주 장애. 결제 로직 버그였다. 개발팀이 급하게 수정한 거. QA 리뷰 없이 배포했다. 장애 보고서. 'QA 미검증 항목 관리 부재' 경영진한테 설명했다. 1시간. 남편한테 말했다. "개발팀이 QA 건너뛰고 배포했어." "그럼 개발팀 잘못이지." "경영진은 QA 팀장 책임이래." 남편이 말했다. "그건 이상한데?" 나도 안다. 이상하다는 거. 13년 했어도 여전히 이상하다. 하지만 이게 현실이다. QA는 방패막이다. 품질 이슈는 전부 여기서 막아야 한다.인정받지 못하는 일 남편은 개발자다. 기능 하나 출시하면 칭찬받는다. "이번 결제 시스템 좋던데." "추천 알고리즘 정확해졌어." 내가 잘하면? 조용하다. 장애 없이 배포되면 당연한 거다. 품질 좋으면 개발 잘한 거다. QA는 보이지 않는다. 작년 프로젝트. 6개월짜리 대형 개편. 테스트 케이스 3000개. 자동화율 70%까지 올렸다. 배포 후 장애 제로. 개발팀 회식 때. CTO가 말했다. "개발팀 수고했어요." QA팀 언급 없었다. 남편한테 말했다. "우리 팀도 6개월 고생했는데." "그럼 너도 말하지 그래." "품질 좋은 게 당연한 거래." 남편은 이해 못 한다. 보이지 않는 일의 무게를. 개발은 만든다. 눈에 보인다. QA는 막는다. 안 보인다. 안 터진 장애가 몇 개인지 아무도 모른다. 다른 언어를 쓴다 남편이랑 일 얘기한다. 점점 대화가 안 통한다. 남편: "오늘 코드 리뷰 5시간 했어." 나: "나도 오늘 리뷰 많았어. 테스트 전략." 남편: "그거 뭐 오래 걸려?" 벽이 느껴진다. 남편이 말하는 것들. "클린 코드" "리팩토링" "아키텍처 설계" 자랑스럽게 말한다. 나도 말한다. "리스크 기반 테스트" "품질 메트릭스" "프로세스 개선" 남편 반응: "음..." 같은 IT 업계다. 같은 회사 건물도 아니지만. 비슷한 월급 받는다. 하지만 다른 세계다. 개발자는 만드는 사람이다. 성취감이 분명하다. "이 기능, 내가 만들었어." QA는? "이 장애, 내가 막았어." 증명할 수 없다. 지난달 회고. 팀원이 말했다. "팀장님, 우리 일 어떻게 어필해요?" "우리가 막은 장애가 몇 건인지 어떻게 세요?" 답이 없었다. 남편한테 물었다. "당신 일은 어떻게 어필해?" "만든 거 보여주지." "우리는?" "음... 장애 안 터진 거?" 그게 다였다. 품질 책임감의 무게 새벽 2시. 슬랙 알람. 결제 장애. 침대에서 일어났다. 남편은 잔다. 노트북 켰다. 에러 로그 확인. 개발팀 리드한테 전화. 1시간 원인 분석. 임시 조치. 재발 방지책 논의. 새벽 4시. 다시 잤다. 아침 7시. 남편이 말했다. "어젯밤에 전화 받더라." "응, 장애." "심각했어?" "결제가 30분 안 됐어." "고쳤어?" "응." 끝이었다. 남편은 모른다. 그 30분이 내게 어떤 의미인지. 매출 손실 계산했다. 보고서 작성했다. 경영진 설명 준비했다. 팀원들 일정 재조정했다. 자동화 시나리오 추가했다. 그 30분이 내 일주일을 바꿨다. 남편의 30분은 다르다. 코드 30분 짜면 끝이다. 머지하면 끝이다. 내 30분은 계속된다. 장애 보고서. 재발 방지. 프로세스 개선. 팀 회고. 끝이 없다. 저녁에 남편이 물었다. "오늘 뭐 했어?" "장애 후속 조치." "아직도?" "응." 이해 못 한다는 얼굴이었다. 혼자 버티는 느낌 팀장 된 지 3년. 혼자 버티는 느낌이다. 위로는 경영진 압박. "일정 줄여주세요." "품질은 지켜야죠." 모순이다. 아래로는 팀원 성장. "자동화 공부하고 싶어요." "일정이 촉박해서..." 미안하다. 옆으로는 개발팀 조율. "이거 꼭 테스트해야 해요?" "네, 리스크 높아요." "시간 없는데." 집에 오면 남편이 있다. 같은 업계. 이해해줄 줄 알았다. 착각이었다. 어제 말했다. "요즘 너무 힘들어." 남편이 물었다. "왜?" "품질 책임이 무거워." "그럼 테스트 덜 하면 되지." 그 순간 알았다. 남편은 영원히 이해 못 한다는 걸. 테스트 덜 하면? 장애가 터진다. 유저가 불편하다. 매출이 떨어진다. 경영진이 부른다. QA 팀장이 책임진다. 이걸 설명했다. 남편이 말했다. "그럼 회사가 이상한 거지." 맞다. 회사가 이상하다. 하지만 나는 여기서 일한다. 8500만원 받는다. 팀원 8명 책임진다. 이상해도 버텨야 한다. 남편은 모른다. 개발자는 코드로 말한다. QA는 품질로 말한다. 코드는 눈에 보인다. 품질은 안 보인다. 그 차이를 혼자 안다. 그래도 계속한다 13년 했다. QA 생태계는 나아졌다. 자동화 투자 늘었다. QA의 중요성 인정받는다. 조금씩. 하지만 여전히 힘들다. 남편은 오늘도 물었다. "언제까지 할 거야?" "뭘?" "QA." 답했다. "모르겠어." 진짜 모른다. 관리자로 갈까. 전문가로 남을까. 13년차에 이런 고민. 이미 늦었을지도. 하지만 알아버렸다. 품질 지키는 일의 가치를. 장애 막았을 때의 안도감을. 팀원 성장하는 모습을. 남편이 이해 못 해도. 경영진이 인정 안 해도. 품질은 지켜야 한다. 그게 내 일이다. 오늘도 출근한다. 팀원들 현황 파악한다. 테스트 전략 세운다. 리스크 계산한다. 혼자 버티는 느낌이어도. 계속한다. 남편은 오늘도 물을 것이다. "오늘 뭐 했어?" "일." "무슨 일?" 설명 안 할 것이다. 어차피 이해 못 한다. 그냥 내 일 한다. 묵묵히.같은 업계여도 다른 세계다. 이해받지 못해도 품질은 지켜야 한다. 그게 팀장의 무게다.
- 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개 추가돼 있다. 커피 마셨다. 세 번째다. 테스트 시작했다.버그는 기록된다. 그리고 어떤 건 배포된다. 나는 서명한다. 그게 팀장이다.
- 09 Dec, 2025
QA 커뮤니티 멘토로서 같은 고민을 듣는 날
목요일 저녁 7시 판교역 카페에 앉았다. QA 커뮤니티 정기 모임. 3개월에 한 번 모인다. 오늘 참석자 5명. 나 포함. 다들 팀장급. 회사는 제각각이다. 네이버 계열사, 카카오 자회사, SI 업체, 스타트업, 대기업 SI 부서. 다들 퇴근하고 왔다. 나도 7시에 나왔다. 남편한테 미리 말해뒀다. 주문한 아메리카노 받았다. 네 번째 커피다. 오늘.자기소개부터 신규 멤버가 한 명 있다. 30대 중반. 스타트업 QA 리드. "저희는 개발자 12명에 QA는 저 혼자예요." 익숙한 시작이다. "배포 주기가 2주인데 테스트는 3일 주고요." 역시. "자동화 하고 싶은데 개발자들이 API 문서를 안 써서..." 웃음이 나왔다. 다들 웃는다. 나도 13년 전에 똑같은 말 했다. 지금도 한다. 카카오 자회사 팀장이 말했다. "우리도 똑같아요. 근데 우리는 개발자 30명." 네이버 계열사는 개발자 50명에 QA 4명이란다. 나는? 개발자 80명에 QA 8명. 비율은 비슷하다.고민 1: 일정 vs 품질 SI 업체 팀장이 먼저 꺼냈다. "이번 프로젝트 PM이 테스트 기간 반 자르래요." "원래 4주였는데 2주로." "근데 기능은 똑같고요." 다들 고개를 끄덕인다. 나도 지난달에 똑같은 일 겪었다. 개발 지연을 QA 기간에서 메꾸라고. "PM한테 뭐라고 했어요?" 스타트업 리드가 물었다. "리스크 문서 작성해서 올렸죠. 놓칠 수 있는 버그 유형이랑 영향도." "그래서요?" "읽기는 했대요. 근데 일정이 우선이래요." 침묵. 카카오 팀장이 말했다. "우리도 똑같았어요. 작년에." "리스크 문서 올리고, 서명받고, 그래도 밀어붙이더라고요." "결국 장애 터졌고." "그때 누가 욕먹었냐면..." 말 안 해도 안다. QA다. 나도 5년 전에 겪었다. 리스크 알렸는데 무시당하고, 결국 장애 나고, 포스트모템에서 'QA 미흡'이라고 적혔다. 그때 밤새 울었다. 고민 2: 자동화 투자 네이버 계열사 팀장이 얘기했다. "자동화 투자 제안서 올렸어요. 3년째." "올해도 반려됐고요." "이유가 ROI가 안 나온대요." 스타트업 리드가 맞장구쳤다. "ROI 어떻게 증명해요? 안 터진 장애를 어떻게 숫자로?" 정확하다. 나도 작년에 자동화 툴 도입 제안했다. 3개월 작성했다. 시뮬레이션 돌렸다. 인건비 절감, 배포 리드타임 단축, 회귀 테스트 자동화율. 다 숫자로 만들었다. 결과? 보류. "내년에 다시 검토하겠습니다." 내년 되면 또 내후년. SI 업체 팀장이 한숨 쉬었다. "우리는 아예 제안도 못 올려요." "프로젝트 끝나면 팀 해체되는데 뭘 투자해요." "매번 새 프로젝트마다 맨땅에서 시작이에요." 카카오 팀장이 고개 저었다. "그나마 우리는 좀 나은가..." "작년에 셀레늄 그리드 구축했거든요." "근데 유지보수할 사람이 없어요. 개발자들은 관심 없고." 결국 똑같다.고민 3: 팀원 성장 내가 물었다. "팀원들 성장시키는 거 어떻게 해요?" 다들 표정이 어두워졌다. 스타트업 리드가 먼저 말했다. "저는 혼자라서..." "성장도 뭐도 일 돌리기도 바빠요." 네이버 계열사는 다르다. "우리는 4명인데요." "한 명은 주니어, 나머지는 3년차들." "주니어 교육하면서 내 일 하려니까..." "결국 내가 다 하게 되더라고요." 안다. 나도 그렇다. 팀원 8명 중에 2명은 신입. 1년차랑 2년차. 1on1 하고, 코드 리뷰해주고, 테스트 전략 같이 세우고. 시간 빠진다. 내 일은 밤에 한다. SI 업체 팀장이 말했다. "근데 키워놔봤자 이직해요." "작년에 3년 키운 애 네이버 갔어요." "축하는 해줬는데... 속으론 허무하더라고요." 카카오 팀장도 고개 끄덕였다. "우리도 작년에 두 명 나갔어요." "한 명은 쿠팡, 한 명은 토스." "연봉 2천 올려준대요." 침묵이 길었다. 나도 작년에 팀원 하나 보냈다. 당근으로. 연봉 1500 올려줬다고. 기뻤다. 진심으로. 근데 동시에 허무했다. 3년 키웠는데. 고민 4: 커리어 고민 카카오 팀장이 조심스럽게 꺼냈다. "저... 이직 고민 중이에요." "팀장 5년 했는데 더 갈 곳이 없어요." "본부장? QA 본부장은 없잖아요." 맞다. 없다. "그렇다고 다시 실무로 돌아가기엔..." "관리만 5년 했더니 손 놓친 게 너무 많아요." 스타트업 리드가 물었다. "CPO 같은 쪽은요?" "QA에서 CPO 간 사람 못 봤어요. 주변에." "다들 PM 출신이거나 개발 출신." 네이버 계열사 팀장이 말했다. "저는 테스트 자동화 전문가로 가볼까 해요." "근데 그것도... 시장이 작잖아요." "결국 또 팀장 하게 되더라고요." 나는? 13년 했다. 8년은 실무, 5년은 팀장. 다음은 뭐지? 모르겠다. SI 업체 팀장이 씁쓸하게 웃었다. "QA는 경력 쌓을수록 애매해져요." "시니어 개발자는 있는데 시니어 QA는..." "뭐라고 불러야 할지도 모르겠어요." 다들 웃었다. 쓴웃음. 고민 5: 인정받기 네이버 계열사 팀장이 말했다. "이번에 부서 평가에서 우리 팀 B 받았어요." "장애 한 건도 없었는데." "개발팀은 A 받았고요." "기능 많이 만들었대요." 익숙하다. 스타트업 리드가 격하게 공감했다. "맞아요. 안 터지는 게 당연한 거래요." "근데 한 번 터지면 QA 뭐했냐고." SI 업체 팀장이 말했다. "프로젝트 회고할 때요." "개발자들은 '이런 기술 썼다' 자랑하잖아요." "우리는 뭐라고 해요? '버그 몇 개 찾았다?'" "허무해요." 카카오 팀장이 한숨 쉬었다. "경영진 보고할 때도 그래요." "품질 지표 올려도 반응이 없어요." "배포 성공률 99%라고 해도 '당연한 거 아니냐'고." "근데 개발팀이 신기술 도입했다 그러면 박수 쳐요." 나도 안다. 지난달 경영진 보고. 2분기 품질 지표 발표했다. 장애 건수 전년 대비 40% 감소. 회귀 버그 제로. 반응? "수고했습니다." 그 다음 발표는 개발팀. AI 모델 도입. 반응? 30분 토론. "혁신적이다." 그날 밤에 남편한테 투덜댔다. "QA는 혁신이 없대." 남편이 말했다. "장애 안 나는 게 혁신 아니야?" 고마웠다. 근데 회사는 그렇게 안 본다. 해결책은 없다 스타트업 리드가 물었다. "선배님들은... 어떻게 버티세요?" 침묵. SI 팀장이 먼저 답했다. "그냥... 버텨요." "다른 방법이 없어서." 카카오 팀장이 말했다. "저는 팀원들 생각하면서." "얘네라도 잘 키워야지." 네이버 계열사 팀장은 솔직했다. "사실 잘 모르겠어요." "그냥 출근해요. 매일." 나는? "저도 모르겠어요. 13년 했는데도." "근데 이상하게 계속하게 돼요." 다들 웃었다. 스타트업 리드가 말했다. "오늘 와서 좋았어요." "나만 힘든 게 아니구나 싶어서." 네이버 계열사 팀장이 고개 끄덕였다. "저도요." "혼자 고민하면 내가 못난 건가 싶은데." "다들 비슷하니까 좀..." 카카오 팀장이 웃었다. "위로는 안 되는데 위안은 돼요." 맞다. 정확한 표현이다. 해결책은 없다. 오늘도 없었다. 근데 혼자가 아니라는 걸 확인했다. 그게 뭔가는 했다. 9시 반 모임 끝났다. 다들 일어났다. "다음 달에 또 봐요." "네, 수고하세요." "조심히 들어가세요." 판교역으로 걸어갔다. 지하철 탔다. 핸드폰 봤다. 슬랙 알림 3개. 개발팀에서 내일 핫픽스 배포한대. "QA 가능한가요?" 시간 봤다. 9시 43분. 답장 쳤다. "네, 내일 오전에 확인하겠습니다." 지하철 창문에 내 얼굴이 비쳤다. 피곤해 보인다. 38살. 13년차. 여전히 답은 모르겠다. 근데 내일도 출근한다. 카페에서 만난 사람들도 마찬가지겠지. 다들 답 없이 내일 출근한다. 그게 QA 리드다.혼자가 아니라는 걸 아는 것. 그게 전부였다. 오늘도.
- 08 Dec, 2025
금요일 오후 4시, 배포 리스트를 받았다
금요일 오후 4시 슬랙이 울렸다. 개발팀 리드가 배포 리스트를 공유했다. 12개 항목. 금요일 오후 4시에. "이번 주 금요일 밤 11시 배포 예정입니다. QA 확인 부탁드립니다." 커피잔을 내려놨다. 손에 힘이 들어갔다. 금요일 배포. 13년 동안 제일 싫어하는 단어다.배포 리스트 뜯어보기 일단 항목을 확인했다. 12개 중 8개는 이미 테스트 완료. 문제없다. 남은 4개가 문제다.결제 모듈 성능 개선 (High) 회원가입 프로세스 변경 (Medium) 관리자 대시보드 UI 수정 (Low) API 타임아웃 설정 변경 (Critical)API 타임아웃이 Critical이다. 이게 잘못되면 전체 서비스가 멈춘다. 개발팀 리드한테 슬랙을 보냈다. "API 타임아웃 테스트 완료됐나요? 부하 테스트 결과 공유 부탁드립니다." 답장이 왔다. "로컬에서는 확인했습니다. 스테이징 배포는 내일 오전 예정이었는데..." 내일 오전. 배포는 오늘 밤 11시. 숨을 깊게 들이쉬었다. 토요일에 장애 터지는 게 보였다. 긴급 회의 소집 팀원들한테 슬랙을 날렸다. "4시 30분 회의실. 금요일 배포 건." 5명이 모였다. 나머지는 재택이라 화상으로. 화이트보드에 4개 항목을 적었다. 우선순위를 다시 매겼다. "결제 모듈이랑 회원가입은 테스트 완료. 문제없어. 관리자 UI는 리스크 낮아. 패스." 마커로 API 타임아웃에 동그라미를 그렸다. "이게 문제야. Critical인데 스테이징 테스트도 안 했어." 막내가 물었다. "그럼 이거 빼고 배포하면 안 돼요?" 고개를 저었다. "이미 프로덕션에 타임아웃 이슈 있어. 고객 컴플레인 들어왔고. 월요일까지 못 기다려." 시니어가 말했다. "지금 스테이징에 올려서 테스트하죠. 6시간 있으면 충분해요." 시계를 봤다. 4시 40분. 배포까지 6시간 20분. "좋아. 개발팀한테 지금 바로 스테이징 배포 요청해. 우리는 시나리오 준비."리스크 평가표 작성 회의가 끝나고 자리로 돌아왔다. 엑셀을 켰다. 리스크 평가표를 만들기 시작했다. 항목별로 리스크 레벨을 매겼다. 영향도, 발생 가능성, 복구 시간. API 타임아웃: 영향도 9/10, 발생 가능성 6/10, 복구 시간 2시간. 결제 모듈: 영향도 10/10, 발생 가능성 2/10, 복구 시간 4시간. 회원가입: 영향도 7/10, 발생 가능성 3/10, 복구 시간 1시간. 관리자 UI: 영향도 3/10, 발생 가능성 1/10, 복구 시간 30분. 표를 보니까 명확했다. API 타임아웃이 최대 리스크다. CTO한테 메일을 썼다. 제목은 "금요일 배포 리스크 분석". 본문에 표를 붙였다. 마지막에 한 문단 추가했다. "API 타임아웃 항목의 경우, 스테이징 테스트 미완료 상태입니다. 금요일 밤 배포 시 주말 장애 리스크가 높습니다. 권장사항은 해당 항목만 월요일로 연기하는 것입니다." 전송 버튼을 눌렀다. 5분 후에 답장이 왔다. "고객 컴플레인이 심각합니다. 월요일까지 기다릴 수 없어요. 스테이징 테스트 완료 후 배포 진행하세요." 노트북 화면을 내려다봤다. 결국 내 책임이다. 스테이징 배포 테스트 6시. 개발팀이 스테이징에 배포했다. 팀원들이랑 테스트 시나리오를 나눴다. 각자 30분씩 돌리기로 했다. 내가 맡은 건 API 타임아웃 시나리오. 부하를 걸어봐야 한다. Postman으로 API를 반복 호출했다. 100회, 500회, 1000회. 응답 시간을 체크했다. 평균 200ms. 최대 350ms. 타임아웃은 500ms로 설정돼 있다. 여유가 있어 보였다. 근데 프로덕션은 트래픽이 다르다. 개발자한테 물었다. "프로덕션 평균 TPS가 얼마죠?" "보통 1500 정도요. 피크 타임엔 3000까지 올라가요."스테이징에서 그만큼 부하를 못 준다."부하 테스트 툴 돌릴 수 있어요?" "JMeter 세팅하면 30분 걸려요." 시계를 봤다. 6시 40분. 배포까지 4시간 20분. "지금 바로 시작하세요."7시 30분, 테스트 결과 JMeter 테스트가 끝났다. TPS 3000으로 5분간 돌렸다. 결과를 봤다. 에러율 0.3%. 타임아웃 에러 9건. 많지 않다. 근데 0은 아니다. 개발자가 로그를 확인했다. "DB 커넥션 풀 부족인 것 같은데요. 설정값 올리면 될 것 같습니다." "지금 고칠 수 있어요?" "10분이면 됩니다." "바로 해주세요." 10분 후에 다시 테스트를 돌렸다. 이번엔 에러 없이 통과했다. 팀원들한테 물었다. "다른 항목 테스트 어때?" "결제 모듈 이상 없습니다." "회원가입도 문제없어요." "관리자 UI 확인했습니다. 괜찮습니다." 고개를 끄덕였다. 체크리스트를 하나씩 체크했다. 8시. 배포까지 3시간. 저녁을 먹을 시간이다. "다들 밥 먹고 와. 10시에 다시 모이자." 배포 직전 체크 10시 30분. 회의실에 다시 모였다. 배포 체크리스트를 스크린에 띄웠다. 30개 항목. 하나씩 확인했다.테스트 완료: ✓ 리스크 평가 완료: ✓ 롤백 플랜 준비: ✓ 모니터링 대시보드 확인: ✓ 장애 대응 가이드 공유: ✓ 비상 연락망 업데이트: ✓개발팀 리드가 물었다. "QA 승인 가능한가요?" 노트북을 내려다봤다. 손가락이 키보드 위에 있었다. API 타임아웃이 걸렸다. 스테이징에서 한 번 에러가 났었다. 근데 수정 후에는 통과했다. 프로덕션 트래픽이 다르긴 하지만. 월요일까지 기다리면 고객 컴플레인이 쌓인다. 기다려도 리스크는 같다. "승인합니다. 배포 진행하세요." 개발자가 고개를 끄덕이고 배포 스크립트를 실행했다. 11시 5분. 배포가 완료됐다. 모니터링 대시보드를 켰다. API 응답 시간, 에러율, TPS를 지켜봤다. 5분. 10분. 15분. 이상 없다. 팀원들이 하나둘 자리를 떴다. "고생하셨습니다." 나는 30분을 더 지켜봤다. 11시 50분까지. 여전히 이상 없었다. 노트북을 닫았다. 집에 가는 길에 남편한테 전화했다. "배포 끝났어. 지금 가." "고생했어. 내일 주말인데 괜찮아?" "모르겠어. 내일 봐야지." 토요일 아침 알람 없이 일어났다. 8시 30분. 습관이다. 침대에 누워서 폰을 켰다. 슬랙을 확인했다. 메시지 0건. 이상 없다는 뜻이다. 모니터링 대시보드 앱을 켰다. 어젯밤부터 지금까지 그래프를 봤다. API 응답 시간: 평균 180ms. 에러율: 0.001%. TPS: 새벽 3시에 피크 2800. 이상 없다. 숨을 내쉬었다. 긴장이 풀렸다. 남편이 커피를 들고 왔다. "괜찮아?" "응. 이상 없어." "다행이네. 오늘 뭐 해?" "일단 12시까지 지켜볼 거야." 남편이 웃었다. "알았어. 점심은 내가 할게." 12시까지 30분마다 대시보드를 확인했다. 계속 정상이었다. 12시 15분. 딸이랑 같이 점심을 먹었다. 남편이 만든 김치찌개. 딸이 물었다. "엄마 오늘 회사 안 가?" "응. 토요일이잖아." "그런데 왜 계속 폰 봐?" 말문이 막혔다. 습관이라고 해야 하나. "엄마 일이 그래. 주말에도 확인해야 돼." 딸이 고개를 끄덕였다. "나도 엄마처럼 회사 다닐 거야." "...그래. 근데 주말엔 쉬는 회사 다녀." 남편이 웃었다. 나도 쓴웃음이 나왔다. 일요일 오전 일요일 아침에도 폰을 먼저 확인했다. 슬랙 메시지 없다. 대시보드를 봤다. 토요일 저녁 피크 타임에도 이상 없었다. API 타임아웃 에러: 0건. 안도감이 왔다. 이제 진짜 괜찮은 것 같다. 오전에 가족이랑 공원에 갔다. 딸이 자전거를 탔다. 벤치에 앉아서 지켜봤다. 30분마다 폰을 확인했다. 습관이다. 남편이 말했다. "이제 그만 봐도 될 것 같은데." "응. 근데 월요일 아침까지는 봐야 해." "금요일 배포가 제일 힘들지?" 고개를 끄덕였다. "응. 주말 내내 불안해." "그럼 왜 금요일에 배포해?" "...고객이 기다리니까." 대답하고 나서 씁쓸했다. 고객도 중요하지만 내 주말도 중요한데. 13년 동안 금요일 배포를 몇 번이나 했을까. 50번? 100번? 매번 이렇게 주말을 보냈다. 폰을 확인하면서. 월요일 아침 월요일 아침 9시. 출근해서 제일 먼저 한 일은 주말 리포트 확인. 모니터링 팀이 보낸 메일을 열었다. "금요일 배포 후 48시간 모니터링 결과".API 평균 응답시간: 185ms 에러율: 0.001% 타임아웃 에러: 0건 사용자 컴플레인: 0건완벽했다. 문제없이 끝났다. CTO한테 메일을 썼다. 제목은 "금요일 배포 완료 리포트". 본문에 주말 모니터링 결과를 붙였다. 마지막에 한 문단 추가했다. "금요일 밤 배포가 성공적으로 완료되었습니다. 주말 동안 모니터링 결과 이상 없음을 확인했습니다. 다만 향후 Critical 항목의 경우 스테이징 테스트 기간을 충분히 확보할 것을 권장합니다." 전송 버튼을 눌렀다. 10분 후에 답장이 왔다. "고생하셨습니다. 팀 회식비 신청하세요." 회식비. 고맙긴 한데 주말 반납한 보상치고는 부족하다. 팀 회고 오후 3시. 팀 회고 미팅을 잡았다. 화이트보드에 세 가지를 적었다. "잘한 점, 아쉬운 점, 개선할 점". 팀원들이 포스트잇을 붙였다. 잘한 점:긴급 회의 빠른 소집 리스크 평가 정확했음 스테이징 테스트로 에러 사전 발견 모니터링 체계 잘 작동아쉬운 점:금요일 오후 4시에 배포 리스트 받음 API 타임아웃 스테이징 테스트 미완료 상태 부하 테스트 시간 부족 주말 내내 긴장 상태개선할 점:배포 리스트 목요일까지 확정 Critical 항목은 수요일까지 스테이징 테스트 완료 자동화 부하 테스트 환경 구축 금요일 배포 최소화 정책마지막 항목을 동그라미 쳤다. "금요일 배포 최소화 정책". "이거 개발팀이랑 협의해보자. 금요일은 Low 리스크만 배포하는 걸로." 시니어가 말했다. "좋은데 경영진 설득이 어려울 거예요." "알아. 근데 계속 제안은 해야지." 회고 내용을 컨플루언스에 정리했다. 다음 주 전사 회의에서 공유할 예정이다. 퇴근길 생각 7시에 퇴근했다. 엘리베이터에서 개발팀 리드를 만났다. "금요일 배포 고생 많으셨어요." "네. 다행히 이상 없었네요." "다음부턴 Critical 항목은 금요일 배포 피하는 게 어떨까요?" 개발팀 리드가 난처한 표정을 지었다. "그러고 싶은데 고객 요청이 급하면..." 말을 잘랐다. "고객 요청이 급해도 장애 나면 더 큰 문제잖아요." "...맞는 말씀이에요. 위에 건의해볼게요." 엘리베이터 문이 열렸다. 서로 인사하고 헤어졌다. 지하철을 타고 가면서 생각했다. 13년 동안 똑같은 말을 몇 번이나 했을까. "금요일 배포 피하자." 근데 여전히 금요일에 배포한다. 고객이 급하니까. 일정이 촉박하니까. 결국 QA 팀장이 주말에 폰을 붙들고 있는다. 창밖을 봤다. 월요일 저녁 7시. 사람들이 퇴근하고 있다. 나도 퇴근이다. 근데 금요일 오후 4시부터 지금까지 진짜 쉰 시간이 얼마나 될까. 핸드폰을 꺼냈다. 슬랙을 확인했다. 습관이다. 남편한테 메시지를 보냈다. "지금 퇴근. 저녁 뭐 먹지?" 답장이 왔다. "치킨 시켜놨어. 맥주도." 웃음이 나왔다. 좋은 사람이다. 그래도 다음 금요일 오후 4시에 또 배포 리스트를 받으면. 또 똑같이 할 것이다. 리스크 평가하고, 테스트하고, 주말에 폰 확인하고.금요일 배포는 끝나지 않는다. 주말도 같이.
- 03 Dec, 2025
월요일 아침, 팀원들 현황 파악이 30분 걸리는 이유
9시 15분, 시작 출근했다. 월요일이다. 가방 던지고 컴퓨터 켰다. 커피 한 모금. 아직 뜨겁다. Jira 대시보드 열었다. 지난주 금요일 대비 이슈 38개 늘었다. 월요일은 항상 이렇다. 슬랙 확인했다. 주말에 메시지 12개. 긴급은 없다. 다행이다. 팀원들 출근 중이다. 30분 안에 파악해야 한다. 회의가 10시다.첫 번째 체크, 진행률 Confluence 열었다. 주간 현황 페이지다. 팀원들이 금요일에 업데이트했다. 민지: 결제 모듈 테스트 70% 테스트 케이스 82개 중 57개 완료. 블로커 없음. 순조롭다. 준호: 검색 기능 리팩토링 검증 중 자동화 스크립트 작성 중. "API 응답 시간 불안정" 메모 있다. 이거 개발팀한테 물어봐야 한다. 수진: 회원가입 플로우 테스트 금요일에 80% 완료 표시했는데. 이슈 3개가 아직 Open이다. 뭔가 막혔나.슬랙 히스토리, 5일치 주말 메시지부터 봤다. 토요일 오후 3시, 준호. "QA 환경 DB 접속 안 됩니다" 30분 뒤 "해결했습니다. VPN 이슈였습니다" 일요일은 조용했다. 금요일 로그 다시 확인. 오후 6시 이후가 중요하다. 배포 전 마지막 이슈들. 수진이 오후 7시에 남긴 메시지. "결제 실패 케이스에서 에러 메시지 안 나옵니다" "일단 이슈 등록했습니다" "월요일에 개발팀이랑 얘기하겠습니다" 여기다. 블로커가. 민지는 금요일 조용했다. 순조롭다는 뜻이다. 경아는 오후 8시까지 있었다. "자동화 스크립트 10개 추가 완료" "내일 아침 리뷰 부탁드립니다" 주말에 이미 봤다. 괜찮았다. Jira 필터, 맞춤형 내가 만든 필터 7개 있다. 순서대로 확인한다.우선순위 높음 + 할당 안 됨 → 2개. 신규 버그다. → 하나는 내가 본다. 하나는 민지 줄게.진행 중 + 업데이트 3일 이상 없음 → 0개. 좋다.블로커 상태 → 1개. 수진 것. → 개발팀 미팅 때 언급해야지.QA 완료 + 개발 확인 대기 → 8개. 금요일부터 쌓였다. → 개발팀한테 넛지 보내야 한다.재오픈된 이슈 → 3개. 이번 주 배포 전에 클로즈 필수.나한테 멘션 → 6개. 하나씩 답장해야 한다.이번 주 배포 대상 → 47개. 리스크 체크 필요.10분 걸렸다. 아직 20분 남았다.1on1 스냅샷, 지난주 기억 지난주 1on1 메모 봤다. 노션에 정리해뒀다. 민지: 자동화 역량 키우고 싶다고 했다. 이번 주 경아 스크립트 리뷰 같이하자고 할게. 준호: 백엔드 테스트 케이스 작성 어렵다고 했다. 성능 테스트 교육 찾아봐야겠다. 수진: 개발팀이랑 소통이 어렵다고. 결제팀 개발 리드랑 점심 주선해야지. 경아: 커리어 고민. 자동화 전문가 vs 매니저. 이건 천천히 얘기해야 한다. 지훈: 업무 속도는 빠른데 문서화가 약하다. 테스트 케이스 템플릿 같이 만들자. 현우: 신입이라 아직 조심스럽다. 작은 성공 경험 만들어줘야 한다. 예진: 도메인 지식 쌓고 싶다고 했다. 기획팀 미팅 참관시키자. 혜린: 번아웃 신호. 야근 줄여야 한다. 이번 주 업무량 조절 필요. 1on1 메모가 없으면 팀 못 굴린다. 매니저는 기억력 싸움이다. 개발팀 채널, 무슨 일 있나 개발팀 슬랙 채널 들어갔다. 우리 팀 직접 관련은 아니지만. 맥락 파악은 필수다. 금요일 오후, 아키텍처 변경 논의. "결제 모듈 API 응답 구조 변경 검토" 이거 준호가 말한 API 불안정이랑 연결된다. 토요일 새벽 2시, 긴급 배포. "검색 인덱싱 버그 핫픽스" 우리 팀 모르고 지나갔다. 월요일 아침 리그레션 돌려야겠다. 일요일 저녁, CTO가 남긴 메시지. "이번 주 배포, 품질 이슈 없게 부탁드립니다" 압박이다. 늘 그렇다. 개발팀 채널 10분 보면. 우리 팀 일주일치 리스크 보인다. 캘린더, 이번 주 일정 구글 캘린더 켰다. 이번 주 회의 14개다. 월요일:10시: 개발팀 리드 미팅 2시: 주간 스프린트 리뷰 4시: 수진 1on1화요일:10시: 배포 전 체크리스트 리뷰 3시: 자동화 전략 회의수요일:9시: 경영진 품질 리포트 5시: 전사 QA 리드 모임목요일:배포일. 오전은 비워뒀다. 오후: 배포 모니터링금요일:회고. 오후 3시.팀원들 일정도 확인했다. 민지는 화요일 오전 교육. 경아는 수요일 연차. 지훈은 목요일 건강검진. 리소스 재배치 미리 해야 한다. 메일, 필터링 필수 메일 89개 쌓였다. 주말 동안. 우선순위 높음 태그 3개.보안팀 패치 공지. 테스트 필요. 기획팀 신규 기능 요청. 일정 협의. 인사팀 분기 평가 안내. 나중에.나머지는 스캔만 했다.자동화 툴 업데이트 공지 → 경아한테 공유 컨퍼런스 초대 → 관심 있지만 일정 안 맞음 타팀 배포 알림 47개 → 제목만 확인메일은 5분 컷. 중요한 건 슬랙으로 온다. 리스크 맵, 머릿속 정리 여기까지 20분. 이제 머릿속으로 정리한다. 이번 주 최대 리스크:수진 결제 이슈 블로커 준호 API 불안정 목요일 배포 일정 타이트 개발팀 아키텍처 변경 영향도 혜린 번아웃오늘 해야 할 일:10시 개발 미팅에서 수진 이슈 우선 처리 요청 준호한테 API 이슈 상세 확인 민지한테 신규 버그 할당 경아 자동화 스크립트 리뷰 승인 혜린 업무 재분배오전에 끝낼 것: 1, 2, 3번. 오후에 할 것: 4, 5번. 내일로 미룰 것: 컨퍼런스 신청, 교육 자료 정리. 머릿속 정리 안 하면. 하루 종일 끌려다닌다. 9시 44분, 팀원들 출근 민지 들어왔다. "팀장님 주말 잘 보내셨어요?" "응. 너는?" "넷플릭스 정주행했어요." 준호 자리 앉았다. 모니터 3개 켰다. 바로 Jira 열었다. 프로다. 수진 늦는다고 슬랙 왔다. "지하철 지연입니다. 10시 5분쯤 도착" 괜찮다고 답장했다. 경아는 이미 와 있었다. 8시 반에 온 것 같다. "스크립트 리뷰 급하진 않아요" 말했다. "오전 중에 볼게" 답했다. 지훈이랑 현우 같이 왔다. 커피 들고. "회의 10시죠?" "응." 예진은 재택이다. 화요일에 나온다. 혜린은 9시 반에 왔다. 평소보다 늦다. 표정이 안 좋다. 10시 회의 전, 마지막 점검 스탠딩 데스크 올렸다. 노트북 들고 회의실 간다. 머릿속 정리 끝. 팀원 8명 현황:민지: 순조로움. 추가 업무 가능. 준호: API 이슈 확인 필요. 개발팀 협업. 수진: 블로커 있음. 우선 해결. 경아: 자동화 잘하고 있음. 리뷰만 하면 됨. 지훈: 속도 빠름. 문서화 코칭. 현우: 작은 성과 만들어주기. 예진: 재택. 특이사항 없음. 혜린: 번아웃 신호. 케어 필요.이번 주 크리티컬 이슈 3개:수진 결제 블로커 준호 API 불안정 목요일 배포 리스크개발 미팅 어젠다:블로커 우선 처리 요청 API 이슈 원인 파악 배포 일정 재협의 가능성30분 걸렸다. 매주 월요일마다. 회의실 들어가면서 개발팀 리드 벌써 와 있다. "주말 잘 보냈어요?" "네. 팀장님도요." 노트북 열었다. 정리한 거 다시 봤다. 30분 파악이 없으면. 이 회의 망한다. 준비 안 된 매니저는. 팀원들 발목 잡는다. 정보 수집 능력이. 팀 속도 결정한다. 3년 전엔 1시간 걸렸다. 지금은 30분이다. 시스템이 생겼다. 필터, 메모, 루틴. 매니저 일은. 정보 처리 속도 싸움이다.월요일 아침 30분. 팀장의 엔진 워밍업이다.