Showing Posts From
전야의
- 03 Dec, 2025
릴리즈 전야의 야근, 피할 수 없다면 준비하자
릴리즈 전야의 야근, 피할 수 없다면 준비하자 수요일 밤 11시, 슬랙이 울렸다 집에 도착한 지 20분. 샤워하고 치킨 시켰다. 슬랭 알림이 울렸다. "K님, 결제 모듈에서 이상한 버그 발견했어요." 금요일 오전 10시 릴리즈다. 내일 목요일은 QA 최종 점검 날이다. 오늘 안 잡으면 릴리즈 미룬다. 치킨은 식었다. 노트북 켰다. 예상 못한 버그는 항상 릴리즈 전에 온다.우선순위부터 판단한다 패닉하면 진다. 지라 티켓부터 만들었다. 우선 버그 정도를 확인한다.Critical: 서비스 불가능. 결제 안 됨. 회원가입 막힘. High: 주요 기능 오작동. 데이터 꼬임. 보안 이슈. Medium: 불편하지만 우회 가능. UI 깨짐. 로딩 느림. Low: 있으면 좋지만 없어도 됨. 오타. 디자인 미세 틀어짐.이번 건은 High였다. 특정 카드사에서 결제 실패. 재현율 30%. 금액이 10만원 넘으면 발생. Critical은 아니다. 다른 카드 쓰면 된다. 하지만 High는 맞다. 고객 불편 크다. 릴리즈 연기 vs 핫픽스 판단 금요일 릴리즈를 미루면?마케팅팀이 준비한 캠페인 날아감. 2주 스프린트 일정 전체 밀림. 다른 팀 일정까지 영향.핫픽스로 가면?내일 QA 시간 부족. 또 다른 버그 나올 위험. 개발자 야근 확정.30초 고민했다. CTO한테 슬랙 날렸다. "오늘 밤에 잡고, 내일 오전 집중 QA 하는 게 어떨까요? 릴리즈는 금요일 오후 3시로 미루고요." 5분 뒤 답왔다. "ㄱㄱ" 결정 끝.이슈 트래킹 체크리스트 야근할 거면 효율적으로 한다. 지라 티켓에 템플릿이 있다. 1. 버그 재현 조건 명확히 개발자가 제일 싫어하는 말. "어? 아까는 됐는데요?" 재현 조건을 구체적으로 적었다.디바이스: iOS 15.6, Safari 계정: 테스트 계정 3개로 확인 카드사: A카드, B카드 (C카드는 정상) 금액: 100,000원 이상 재현율: 10번 중 3번영상도 찍었다. Loom으로 화면 녹화. 슬랙에 공유. 2. 로그 확인 센트리 들어갔다. 에러 로그 3건. 전부 같은 API. payment_gateway_error: card_validation_failed timestamp: 23:14:32 user_id: test_user_03 amount: 150000개발자한테 이거 캡처해서 보냈다. "이거랑 관련 있을 것 같아요." 3. 영향 범위 체크 이 버그가 다른 기능에도 영향 주는지 확인했다.일반 결제: 정상 정기 결제: 정상 환불: 정상 부분 취소: 미확인 (내일 체크)영향 범위가 좁다. 다행이다. 4. 우회 방안 준비 만약 금요일까지 못 잡으면? 고객센터 공지 준비했다. "현재 일부 카드사에서 10만원 이상 결제 시 오류가 발생할 수 있습니다. 다른 카드를 이용하시거나 고객센터로 연락 주시면 도와드리겠습니다." 최악의 시나리오도 준비. 항상 플랜 B는 있어야 한다.커뮤니케이션이 반이다 야근할 때 제일 중요한 거. 커뮤니케이션이다. 개발팀 리드한테 먼저 연락 PM이 아니라 개발 리드한테 먼저 물었다. "오늘 밤에 이거 잡을 수 있을까요? 솔직하게 말씀해주세요." "3시간 정도면 될 것 같은데, 확실하진 않아요." "그럼 자정까지 해보시고, 안 되면 내일 오전으로 미뤄도 돼요. 무리하지 마세요." 개발자를 믿는다는 신호를 줬다. 압박하면 역효과다. 이해관계자 정리 슬랙 채널에 상황 공유했다. [긴급] 릴리즈 일정 변경 안내- 버그 발견: 결제 모듈 (High 우선순위) - 조치: 오늘 밤~내일 오전 수정 - QA: 내일 오전 집중 진행 - 릴리즈: 금요일 10시 → 15시로 변경 - 영향: 마케팅 캠페인 시간 조정 필요죄송합니다. 내일 아침 9시에 상황 업데이트 드리겠습니다.마케팅팀에서 답왔다. "오케이, 캠페인 3시 이후로 조정할게요." 디자이너는 이모지만 달았다. 👍 상황을 투명하게 공유하면 다들 이해한다. 숨기려고 하면 불신만 쌓인다. 진행 상황 주기적 업데이트 자정에 개발자한테 물었다. "어떻게 되고 있어요?" "70% 정도 왔어요. 1시간 더 하면 될 것 같아요." 1시에 또 물었다. "거의 다 왔어요. 로컬에서는 재현 안 되네요. 스테이징에 배포해볼게요." 1시 반에 슬랙 왔다. "배포 완료. 테스트 부탁드려요." 테스트 10번 돌렸다. 전부 정상. "완벽해요. 고생하셨습니다." 개발자는 이미 퇴근했다. 나도 노트북 덮었다. 새벽 2시. 치킨은 차가웠지만 기분은 좋았다. 야근 이후 할 일 다음 날 목요일. 9시에 출근했다. 회고 미팅 30분 개발팀이랑 간단히 회고했다. "왜 이 버그가 늦게 발견됐을까?"테스트 케이스에 10만원 이상 시나리오 없었음. 특정 카드사 테스트 계정 부족."다음엔 어떻게 하면 좋을까?"경계값 테스트 케이스 추가. 카드사별 테스트 계정 확보. 결제 모듈은 스테이징 배포 후 1일 대기 후 릴리즈.비난하지 않았다. 프로세스를 개선하는 데 집중했다. 지라 티켓 정리 버그 티켓을 닫기 전에 문서화했다.버그 내용 재현 조건 원인 분석 (개발자가 작성) 해결 방법 재발 방지책다음에 비슷한 일 생기면 참고한다. 지라는 우리 팀의 기억이다. 팀에게 감사 표현 슬랙에 메시지 남겼다. "어제 밤 고생하신 민수님, 정말 감사합니다. 덕분에 일정 지킬 수 있었어요. 점심 제가 쏠게요." 작은 것 같지만 중요하다. 야근은 당연한 게 아니다. 그리고 팀 전체에도. "모두 빠른 대응 감사합니다. 금요일 릴리즈 무사히 하고 회식 가시죠." 분위기가 풀렸다. 야근을 줄이는 방법 사실 야근은 안 하는 게 최선이다. 매번 야근하면 번아웃 온다. 릴리즈 일정에 버퍼 둔다 나는 이제 릴리즈 2일 전에 개발 완료를 잡는다.월요일~수요일: 개발 목요일: QA 금요일: 버퍼 + 최종 체크 다음 주 월요일: 릴리즈금요일에 버그 나와도 여유 있다. 중요한 기능은 스테이징 먼저 결제, 인증, 데이터 마이그레이션. 이런 건 스테이징에 먼저 배포한다. 2-3일 돌려보고 프로덕션 간다. 급하다고 바로 배포하면 야근한다. 테스트 시나리오 꼼꼼히 QA팀 없는 회사도 많다. 우리도 그렇다. 그래서 테스트 시나리오를 개발 시작 전에 만든다.Happy path: 정상 케이스 Sad path: 에러 케이스 Edge case: 경계값, 극단적 상황이거 안 하면 릴리즈 전날 버그 나온다. 개발자랑 사전 소통 "이거 언제까지 돼요?"가 아니라 "이 기능 개발하는 데 리스크 요인이 뭘까요?" 개발자가 불안해하는 부분을 미리 안다. 거기에 시간을 더 쓴다. 의외로 대화가 답이다. 결국 준비의 문제 릴리즈 전야 야근. 완전히 막을 순 없다. 소프트웨어는 항상 예측 불가능하다. 하지만 준비하면 덜 황당하다.우선순위 판단 기준 정해두기 이슈 트래킹 템플릿 만들기 커뮤니케이션 루트 정리하기 버퍼 포함한 일정 계획이것만 해도 야근이 반으로 준다. 그리고 야근했으면 회고한다. 같은 실수 두 번 하지 않는다.금요일 오후 3시. 릴리즈 완료. 모니터링 2시간 했다. 별일 없다. 이제 맥주 마실 시간이다.