Showing Posts From

런칭

런칭 전야, 잠을 못 자는 이유

런칭 전야, 잠을 못 자는 이유

런칭 전야, 잠을 못 자는 이유 오후 11시, 불이 켜진 사무실 퇴근 시간은 6시였다. 지금 11시다. 사무실에 불이 다 켜져 있다. 개발팀, 기획팀, 운영팀, QA팀 모두 남아 있다. 내일이 런칭이다. 정식 오픈. 2년 반 만든 게임이다. 기획자 민수형이 모니터 앞에서 엑셀을 보고 있다. 개발자 준호형은 코드를 계속 고치고 있다. 운영팀 누나들은 공지사항을 쓴다 지운다 반복한다. 우리 QA팀도 마찬가지다. 테스트를 계속하고 있다. 오후 8시에 올라온 빌드를 받았다. "마지막 수정본"이라고 했다. 근데 벌써 세 번째 "마지막"이다.런칭 전날 밤의 의식 런칭 전날 밤은 항상 이렇다. CBT 때도 그랬다. OBT 때도 그랬다. 지금도 똑같다. 다들 남아서 일한다. 점검한다. 확인한다. "혹시 모를 버그"를 찾는다. 근데 솔직히 이 시간에 버그 찾아봤자다. 고칠 시간이 없다. 그래도 찾는다. 안 찾을 수가 없다. 내일 오전 10시에 서버가 오픈된다. 유저들이 들어온다. 그때 버그가 터지면? 생각하기 싫다. 나는 지금 신규 유저 플로우를 점검하고 있다. 튜토리얼부터 10레벨까지. 계정을 새로 만들어서 처음부터 플레이한다. 벌써 다섯 번째 계정이다. 같은 대사를 다섯 번 본다. 같은 전투를 다섯 번 한다. 지겹다. 근데 해야 한다. 확인하고 또 확인하는 것들 체크리스트가 있다.튜토리얼 스킵 버그 없는지 신규 유저 보상 제대로 나오는지 상점 결제 정상 작동하는지 로그인 서버 부하 견딜 수 있는지 채팅 욕설 필터 작동하는지리스트가 50개다. 다 확인해야 한다. 결제 테스트를 한다. 실제로 돈을 쓰는 건 아니고 테스트 결제다. 1000원 패키지를 산다. 아이템이 들어온다. 로그를 확인한다. 정상이다. 10000원 패키지를 산다. 보너스 재화가 들어와야 한다. 들어왔다. 정상이다. 근데 불안하다. 혹시 실제 결제에서는? 혹시 동시 접속 1000명 넘으면? 옆자리 성훈이가 말한다. "형, 상점 UI 겹치는 거 아직도 안 고쳐졌어요." 알고 있다. 해상도 특정 비율에서 버튼이 겹친다. 기획팀한테 말했다. 개발팀한테도 말했다. "우선순위 낮음"이라고 했다. 런칭하면 유저들이 신고할 거다. 커뮤니티에 스크린샷 올라올 거다. "이게 정식 게임이냐"는 댓글 달릴 거다. 우리 탓이 된다.자정이 지났다 12시 30분이다. 팀장님이 편의점 가신다고 한다. 뭐 필요한 거 있냐고 묻는다. 다들 에너지 음료 시킨다. 나도 레드불 달라고 했다. 오늘만 벌써 세 개 마셨다. 심장이 두근거린다. 근데 안 마시면 졸린다. 준호형이 커밋을 올렸다. "긴급 수정"이라고 한다. 또 빌드를 받아야 한다. "마지막"의 "마지막"이다. 빌드 받는 데 20분 걸린다. 설치하는 데 10분 걸린다. 그동안 화장실 갔다 왔다. 거울을 봤다. 눈이 충혈됐다. 머리가 떡졌다. 얼굴이 푸석하다. 27살 맞나 싶다. 세수를 했다. 정신이 좀 든다. 아니, 안 든다. 피곤하다. 새벽 2시의 발견 테스트를 계속한다. 신규 빌드에서 퀘스트를 진행한다. 5번 퀘스트까지 정상이다. 6번 퀘스트를 받는다. NPC를 클릭한다. 대화창이 안 뜬다. 다시 클릭한다. 안 뜬다. 게임을 껐다 킨다. 다시 해본다. 또 안 뜬다. 심장이 멈춘다. "형, 이거 좀 봐요." 성훈이를 부른다. 성훈이도 해본다. 안 된다. 빌드 문제다. 기획팀 민수형을 부른다. 민수형이 당황한다. 준호형을 부른다. 준호형이 로그를 본다. "스크립트 파일이 안 들어갔네." 새벽 2시에 발견한 크리티컬 버그다. 메인 퀘스트가 진행이 안 된다. 게임을 못 한다. 지금 고쳐야 한다. 준호형이 파일을 넣는다. 다시 빌드한다. 20분 기다린다. 팀장님이 편의점에서 돌아왔다. 레드불을 나눠준다. 상황을 보고한다. 팀장님이 한숨 쉰다. "잘 찾았어. 지금 고치는 거지?" 네. 고치고 있습니다.새벽 3시, 잠이 안 오는 이유 빌드가 올라왔다. 다시 테스트한다. 이번엔 된다. 퀘스트가 진행된다. NPC 대화가 뜬다. 정상이다. 처음부터 다시 해본다. 또 된다. 세 번 해본다. 문제없다. "됩니다." 보고를 올린다. 준호형이 고맙다고 한다. 민수형이 수고했다고 한다. 근데 안심이 안 된다. 혹시 또 다른 버그가 있으면? 혹시 우리가 못 찾은 게 있으면? 아까 그것도 거의 못 찾을 뻔했다. 6번 퀘스트까지 안 갔으면 몰랐을 거다. 런칭하고 유저들이 찾으면? 생각하기 싫다. 새벽 4시, 그래도 계속한다 계속 테스트한다. 7번 퀘스트, 8번 퀘스트, 10번 퀘스트까지. 전부 정상이다. 던전에 들어간다. 몬스터를 잡는다. 보상을 받는다. 정상이다. 상점에 간다. 아이템을 산다. 사용한다. 정상이다. 파티를 만든다. 성훈이 계정을 초대한다. 같이 던전 간다. 정상이다. 체크리스트를 확인한다. 40개 완료했다. 10개 남았다. 성훈이가 졸고 있다. 의자에 기대서 눈을 감았다. 깨우지 않는다. 나도 졸린데 성훈이는 더 졸릴 거다. 민수형도 책상에 엎드려 있다. 준호형은 아직도 모니터를 보고 있다. 운영팀 누나들은 회의실에서 자고 있다. 다들 지쳤다. 근데 내일이면 끝난다. 아니, 오늘이다. 몇 시간 후면 런칭이다. 새벽 5시, 체크리스트 완료 마지막 항목을 확인한다. "서버 시간 동기화 테스트". 게임 시간이랑 실제 시간이 맞아야 한다. 일일 퀘스트 리셋 시간, 출석 보상 시간, 이벤트 시작 시간. 전부 확인한다. 정상이다. 체크리스트 50개 전부 완료했다. 팀장님한테 보고한다. 팀장님이 고생했다고 한다. 이제 좀 쉬라고 한다. 근데 못 쉰다. 불안하다. 성훈이를 깨운다. "형, 다 했어요?" 응, 다 했어. "그럼 집 갈까요?" 집 가도 잠 못 잔다. 그냥 여기 있는다. 새벽 6시, 런칭 2시간 전 사무실에 사람들이 하나둘 출근한다. 대표님도 왔다. 런칭 보려고 일찍 온 거다. 개발팀 다른 팀원들도 온다. 디자인팀도 온다. 다들 긴장한 얼굴이다. 운영팀에서 커피를 내린다. 다 같이 마신다. 말이 없다. 대표님이 말한다. "2년 반 동안 고생 많았습니다. 오늘 잘 되면 좋겠습니다." 박수가 나온다. 근데 어색하다. 다들 긴장해 있다. 나도 긴장된다. QA는 끝났는데 긴장된다. 혹시 모를 버그. 혹시 모를 문제. 서버가 터지면? 결제가 안 되면? 게임이 튕기면? 우리 탓이 된다. 오전 8시, 최종 점검 마지막 점검을 한다. 운영팀에서 서버 상태를 확인한다. 개발팀에서 로그를 본다. QA팀에서 테스트 서버에 다시 접속한다. 전부 정상이다. 공지사항이 올라간다. "오전 10시 정식 오픈". 커뮤니티에 글이 올라온다. 유저들이 기대한다는 댓글을 단다. 기대가 부담이 된다. 성훈이가 말한다. "형, 떨려요." 나도 떨린다. 손이 떨린다. 커피를 너무 많이 마셔서 그런가. 아니다. 긴장해서 그렇다. 준호형이 농담한다. "우리 이력서 준비해야 하나." 웃기려고 한 말인데 안 웃긴다. 진짜 그럴 수도 있다. 런칭이 망하면. 버그가 터지면. 오전 9시 50분, 10분 남았다 서버 오픈 10분 전이다. 사무실에 다 모였다. 개발팀, 기획팀, 운영팀, QA팀, 디자인팀, 마케팅팀. 전부 모였다. 대표님이 카운트다운을 하자고 한다. 모니터에 서버 관리 창이 떠 있다. 오픈 버튼이 보인다. 10시 되면 누른다. 9시 55분. 5분 남았다. 커뮤니티를 본다. 유저들이 대기하고 있다. "곧 오픈", "기대된다", "재밌겠다" 댓글들이 올라온다. 잘 되면 좋겠다. 진짜로. 9시 58분. 2분 남았다. 심장이 빠르게 뛴다. 레드불 때문만은 아니다. 긴장 때문이다. 성훈이가 내 어깨를 친다. "형, 우리 잘했어요. 괜찮을 거예요." 그랬으면 좋겠다. 9시 59분. 1분 남았다. 대표님이 손을 마우스에 올린다. 다들 숨을 죽인다. 10시 정각. 대표님이 버튼을 누른다. "서버 오픈되었습니다." 박수가 터진다. 환호성이 나온다. 다들 웃는다. 근데 나는 못 웃는다. 아직 긴장된다. 모니터를 본다. 유저 접속 수가 올라간다. 10명, 50명, 100명, 500명. 에러 로그를 본다. 아직 없다. 다행이다. 1000명 넘어간다. 2000명 넘어간다. 아직도 에러 없다. 조금씩 안심이 된다. 오전 11시, 한 시간 후 런칭한 지 한 시간 지났다. 동접 5000명 넘었다. 에러 로그 몇 개 있다. 근데 크리티컬은 없다. 사소한 버그들이다. 커뮤니티 반응을 본다. "재밌네", "그래픽 좋다", "최적화 잘 됐네" 댓글들이다. 물론 버그 신고도 있다. UI 겹치는 거, 번역 오타, 사소한 것들이다. 알고 있던 것들이다. "이거 QA 안 했냐" 댓글도 보인다. 했다. 50개 체크리스트 다 확인했다. 밤새 테스트했다. 근데 완벽할 수는 없다. 그래도 메인 버그는 없다. 게임은 돌아간다. 결제도 된다. 서버도 안정적이다. 성공이다. 일단은. 낮 12시, 퇴근 팀장님이 말한다. "다들 집 가서 쉬어. 고생했어." 짐을 챙긴다. 가방을 멘다. 사무실을 나선다. 햇빛이 눈부시다. 밤새 실내에만 있어서 그렇다. 지하철을 탄다. 자리에 앉는다. 핸드폰을 본다. 게임 커뮤니티를 확인한다. 여전히 반응이 좋다. 동접이 7000명 넘었다. 다행이다. 근데 피곤하다. 눈이 감긴다. 집에 도착했다. 고시원 방에 들어왔다. 침대에 눕는다. 이제야 잠이 온다. 런칭 전날 밤에는 못 잤다. 불안해서. 긴장돼서. 혹시 모를 버그 때문에. 근데 이제는 잘 수 있다. 런칭했다. 성공했다. 일단은.새벽 2시에 찾은 버그 하나가 런칭을 살렸다. 그래서 잠을 못 잔다.

런칭 후 버그 터졌을 때 QA의 심정

런칭 후 버그 터졌을 때 QA의 심정

런칭 후 버그 터졌을 때 QA의 심정 디스코드가 터진 날 런칭 3일 차. 새벽 2시. 디스코드 알림이 미쳤다. 100개. 200개. 멈추지 않는다. "아이템 복사 버그 있음" "퀘스트 완료 안 됨" "접속 끊김"유저들이 찾았다. 우리가 못 찾은 버그를. 팀장 전화가 왔다. "출근해." 회의실의 시선 오전 10시. 긴급 회의. 개발팀 전원. 기획팀 전원. 그리고 우리 QA팀. "QA에서 이거 못 찾았어요?" 대표이사가 물었다. 나를 보면서. 말이 안 나왔다. "죄송합니다"만 했다. 옆자리 윤서가 설명했다. "케이스를 못 찾았습니다. 특정 조건에서만..." "특정 조건?" 개발팀장이 웃었다. 비웃는 웃음. "유저들은 10분 만에 찾았는데?" 할 말이 없었다.우리가 3개월 테스트했다. 매일 12시간씩. 유저 10만 명이 3일 했다. 총 300만 시간. 이길 수가 없다. 숫자로. 테스트 로그를 뒤진다 회의 끝나고 자리로. 내 테스트 로그를 열었다. 3개월 치. "아이템 획득 테스트 - 정상" "인벤토리 테스트 - 정상" "퀘스트 보상 테스트 - 정상" 다 했다. 분명히 다 했다. 그런데 왜 못 찾았을까. 유저 제보를 다시 봤다. "아이템 획득 중 네트워크 끊기면 복사됨" 아. 네트워크 불안정 상황. 우리는 사무실에서 테스트했다. 와이파이 빵빵한 곳에서. 유저는 지하철에서 했다. LTE 들락날락하는 곳에서. 그 차이였다. 재현 테스트 오후 내내 재현했다. 와이파이 껐다 켰다 반복. 100번. 51번째에 터졌다. 아이템 2개가 됐다. "재현했습니다." 개발팀에 리포트 올렸다. 개발자가 답했다. "알았어요. 근데 왜 런칭 전에 못 찾았죠?" 또 그 질문. "네트워크 불안정 테스트가 부족했습니다." "그걸 QA가 해야 하는 거 아닌가요?" 맞다. 우리가 해야 했다.말이 안 나왔다. "죄송합니다"만 또 했다. 커뮤니티 반응 점심시간. 커뮤니티를 봤다. "이 회사 QA 뭐 함?" "테스트도 안 하고 런칭했냐" "돈만 받고 놀았네" 칼이었다. 하나하나가. 댓글 200개. 추천 500개. 옹호하는 댓글은 없었다. "QA가 사람인데 다 찾겠어요?" 이 댓글도 있었다. 추천 5개. 나머지는 욕이었다. 창을 껐다. 더 못 봤다. 야근의 이유 저녁 9시. 아직도 회사. 버그 리스트를 정리했다. 유저 제보 500건. 중복 제거하니 80건. 심각도 분류했다. Critical 12건. High 35건. Medium 33건. Critical 12건은 핫픽스 대상. 내일 새벽까지. 개발팀이 수정하면 내가 확인한다. 전수 확인. 예상 시간 6시간. 새벽 4시쯤 끝날 것 같다. 집에는 못 간다. 오늘도. 편의점 도시락 먹었다. 세 번째. 동료의 위로 새벽 1시. 윤서가 커피를 줬다. "너 탓 아니야." "근데 다들 나를 봐." "나도 봐. 우리 팀 전체를 봐." 윤서도 힘들다는 걸 안다. 리드 QA라서 더. "우리가 할 수 있는 거 했어. 시간도 부족했고 인력도 부족했어." 맞다. QA 3명이서 RPG 전체를 테스트했다. 개발자는 20명인데. QA는 3명. "그래도 유저는 모르잖아." "응. 모르지." 윤서가 자기 자리로 갔다. 테스트하러. 나도 했다. 핫픽스 빌드 확인. 4시의 퇴근 새벽 4시 반. 마지막 버그 확인 끝. "전수 확인 완료. 배포 가능합니다." 개발팀장한테 메시지 보냈다. 답장은 안 왔다. 자고 있겠지. 사무실 불을 껐다. 마지막 남은 사람. 엘리베이터에서 거울을 봤다. 눈이 충혈됐다. 3일 동안 15시간씩 일했다. 얼굴이 푸석하다. 27살 얼굴이 아니다. 택시 탔다. 회사 법인카드로. 기사님이 물었다. "야근하셨어요?" "네." "힘드시겠네요." "네." 더 할 말이 없었다. 핫픽스 배포 다음 날 오후. 핫픽스 나갔다. 공지가 떴다. "긴급 점검 완료. 버그 수정했습니다." 커뮤니티 반응을 봤다. "수정 빠르네" "이제야 하네" "처음부터 제대로 하지" 칭찬은 없었다. 당연한 걸 했다고 생각하니까. 욕은 줄었다. 그게 다행이었다. QA 얘기는 더 이상 없었다. 관심 밖. 우리가 밤샘한 건 아무도 모른다. 우리가 6시간 동안 전수 테스트한 것도. 그냥 "개발팀이 수정했다"로 끝. 팀장의 말 오후 회의. 팀장이 말했다. "다들 고생했어. 특히 QA팀." 처음 듣는 말이었다. 긴급 회의 때는 없던 말. "근데 다음부터는 네트워크 불안정 케이스도 체크하자." 또 숙제가 생겼다. 체크리스트에 항목 추가. "네트워크 불안정 시나리오 테스트" 이미 200개 넘는 체크리스트. 거기에 하나 더. 시간은 그대로인데. 일은 늘었다. "시간 더 주실 수 있나요?" 윤서가 물었다. "런칭 일정은 이미 정해졌어. 다음 업데이트도." 없다는 뜻이었다. 무력감의 정체 퇴근길. 지하철에서 생각했다. 왜 이렇게 무력할까. 우리가 못해서? 아니다. 할 수 있는 건 다 했다. 시간이 없어서? 맞다. 하지만 핑계처럼 들린다. 유저가 더 많아서? 맞다. 하지만 변명처럼 들린다. 결국 답은 하나다. 버그는 항상 나온다. 100% 막을 수 없다. 근데 사람들은 100%를 원한다. 개발자 실수는 "버그"라고 한다. QA 실수는 "직무유기"라고 한다. 같은 실수인데 다르게 본다. 그래도 하는 이유 집에 도착했다. 고시원 방. 침대에 누웠다. 천장을 봤다. 그만둘까 생각했다. 100번째쯤. 이직할까 생각했다. 200번째쯤. 근데 안 한다. 아직은. 왜냐면. 버그 찾는 게 재밌어서. 가끔. 유저들이 즐기는 거 보면 뿌듯해서. 가끔. "버그 없네. QA 잘했다"는 말 들으면 좋아서. 거의 안 들리지만. 그리고 이거. 누군가는 해야 하니까. 개발자가 만들면 누군가는 확인해야 한다. 그게 우리 일이니까. 다음 버전 다음 날 출근. 새 빌드 받았다. 차기 업데이트 빌드. 신규 던전. 테스트 시작했다. 또. 던전 입장. 몬스터 잡기. 보상 확인. 정상이다. 지금은. 근데 안다. 어딘가에 버그가 있다는 걸. 내가 못 찾을 수도 있다는 걸. 런칭 후 유저가 찾을 수도 있다는 걸. 그때 또 무력할 거라는 걸. 그래도 한다. 찾을 수 있는 만큼. 마우스를 움직였다. 던전 2회차. 체크리스트를 켰다. 201개 항목. 하나씩 체크했다. 오늘도.버그는 항상 나온다. 근데 QA는 항상 욕먹는다. 그게 이 일이다.