베타 채널의 유령은 마침내 잠잠해졌다.
동기화 로직을 강화한 패치는 성공적이었다. 간헐적으로 발생하던 시각적 결함은 더 이상 보고되지 않았다. 릴리스 대시보드의 모든 지표는 안정적인 녹색을 유지하고 있었다. 크롬 113은 이제 마지막 역, 안정(Stable) 채널로 향할 준비를 마친 듯 보였다.
이제 그들의 일은 코드를 고치는 것이 아니라, 세상에 나갈 채비를 하는 것이었다.
개발자 관계(Developer Relations) 팀의 리아나가 드미트리를 찾아왔다. 그녀의 손에는 출시 발표용 공식 블로그 포스트의 초안이 들려 있었다.
“드미트리, 기술적인 내용에 대한 최종 검토를 부탁해요. 이 글이 세상의 개발자들에게 보내는 WebGPU의 첫인상이 될 겁니다. 우리가 왜 이것을 만들었고, 이것이 웹을 어떻게 바꿀 것인지 명확하고 강력하게 전달해야 해요.”
드미트리는 초안을 받아들었다. 그 안에는 지난 몇 년간의 여정이 고스란히 녹아 있었다. WebGL의 한계, CPU 오버헤드 문제, 최신 하드웨어 아키텍처에 대한 갈증, 그리고 WebGPU가 제시하는 해법들. 그는 문장 하나하나, 단어 하나하나를 꼼꼼히 읽으며 기술적인 오류가 없는지, 개발자들에게 오해를 살만한 표현은 없는지 확인했다. 이것 역시 코드 리뷰만큼이나 중요한 작업이었다.
그리고 마침내, 운명의 날이 밝았다.
최종 출시 승인 회의, 일명 ‘Go/No-Go 미팅’.
회의실에는 크롬 113 출시에 관련된 모든 부서의 책임자들이 모였다. 출시 관리 총책임자인 메이슨 이사가 회의를 주재했다. 그녀의 표정에는 어떤 감정도 담겨 있지 않았다.
이곳은 토론의 장이 아니라, 확인의 장이었다. 메이슨은 각 책임자들을 차례로 지목하며 질문을 던졌다. 그녀의 목소리는 회의실의 긴장감을 더욱 팽팽하게 만들었다.
“보안 팀. 마지막 감사 결과는?”
“P0 보안 패치 이후 새로운 취약점은 발견되지 않았습니다. 저희는 Go입니다.”
“QA 팀. 베타 채널의 최종 안정성 지표는?”
QA 리더 사라가 대답했다. “크래시 비율, 성능 지표 모두 목표 범위 내에 있습니다. 알려진 주요 이슈는 모두 해결되었습니다. 저희도 Go입니다.”
“개발자 관계 팀. 출시 준비는?”
리아나가 말했다. “블로그 포스트, 공식 문서, 코드 샘플 모두 준비 완료되었습니다. Go입니다.”
메이슨의 시선이 마침내 드미트리에게로 향했다.
“엔지니어링. Dawn 팀의 최종 의견은?”
드미트리는 잠시 숨을 골랐다. 그의 등 뒤로 팀원들의 얼굴이 스쳐 지나갔다. 지난 몇 년간의 밤샘과 논쟁, 좌절과 환희의 순간들. 그는 그 모든 것을 대표하여 입을 열었다. 그의 목소리는 낮았지만, 회의실 전체에 선명하게 울렸다.
“코드는 안정적입니다. 저희는 준비되었습니다. Go입니다.”
모든 부서의 ‘Go’ 선언이 끝났다. 이제 최종 판결은 오직 메이슨의 몫이었다. 그녀는 잠시 눈을 감고 모든 보고를 종합하는 듯했다. 회의실의 모두가 숨을 죽였다.
짧은 정적이 흐른 뒤, 메이슨이 눈을 떴다.
“좋습니다. 모든 지표가 녹색이군요.”
그녀는 결정을 내렸다.
“크롬 113, WebGPU 기본 활성화. 최종 승인합니다.”
그녀는 마지막 한마디를 덧붙였다.
“이 결정은, 되돌릴 수 없습니다.”
‘되돌릴 수 없다(No-revert)’.
최종 승인이 떨어진 기능은, 설령 출시 직후 사소한 문제가 발견되더라도 다음 버전까지 롤백되지 않는다는 의미였다. 그만큼의 자신감과 책임이 담긴 선언.
회의가 끝나고 밖으로 나오자, 복도의 창문 너머로 캘리포니아의 노을이 지고 있었다. 드미트리는 자신의 책상으로 돌아와 모니터 옆에 붙은 ‘113’ 포스트잇을 말없이 바라보았다.
이제 정말로 그의 손을 떠났다.
그가 작성하고, 팀원들이 다듬고, 수많은 사람들이 테스트한 그 코드는 이제 거대한 자동화 릴리스 파이프라인에 실렸다. 정해진 시간에, 정해진 절차에 따라, 전 세계 수십억 명의 사용자에게 배포될 것이었다.
그는 더 이상 코드를 고칠 수 없었다. 그저 지켜볼 뿐이었다.
자신들이 수년간 공들여 만든 배가, 마침내 항구를 떠나 거대한 바다로 나아가는 모습을.
그는 조용히, 그 배가 맞이할 첫 번째 새벽을 기다렸다.