반격의 설계도, NXT
제4화
발행일: 2025년 08월 04일
회의는 끝났지만, 전쟁은 시작되었다.
드미트리의 머릿속은 복잡하게 회전하는 톱니바퀴 같았다. 애플이 던진 ‘WebMetal’이라는 카드는 강력했다. 이미 완성된 네이티브 API를 기반으로 한 구체적인 청사진. 그것은 즉각적인 설득력을 가졌다. 그에 맞서 ‘추상화’라는 원칙을 외치는 것만으로는 부족했다. 원칙은 이상적이지만, 코드는 현실이다.
그는 회의가 끝나자마자 크로미움 그래픽스 팀의 핵심 멤버들을 소집했다. 굳은 표정의 엔지니어들이 회의실에 둘러앉자, 드미트리가 입을 열었다.
“상황은 모두가 아는 대로입니다. 우리는 지금 갈림길에 서 있습니다. WebMetal을 받아들이거나, 더 나은 대안을 제시하거나.”
한 동료가 조심스럽게 물었다.
“WebMetal이 그렇게 나쁜 선택인가요? 일단 빠르게 시작할 수 있다는 장점도 있지 않습니까?”
“좋은 질문입니다.”
드미트리는 고개를 끄덕였다.
“WebMetal은 잘 닦인 고속도로와 같습니다. 하지만 그 길은 오직 애플 생태계로만 향합니다. 우리가 그 길 위에 건물을 지으면, 결국 우리는 애플이라는 땅 주인에게 종속될 수밖에 없어요. 윈도우와 안드로이드 사용자가 대다수인 웹 생태계에는 맞지 않는 옷입니다.”
그는 자리에서 일어나 화이트보드로 걸어갔다. 보드마카를 집어 든 그의 눈빛이 날카롭게 빛났다.
“우리가 만들어야 할 것은 특정 지역으로만 향하는 고속도로가 아닙니다. 모든 도시(플랫폼)를 연결하는 거대한 철도 시스템이죠.”
드미트리는 화이트보드 중앙에 세 개의 원을 그렸다. 그리고 각각 ‘Vulkan’, ‘Metal’, ‘DirectX 12’라고 적었다.
“이들은 각기 다른 언어를 쓰는 세 개의 강력한 국가입니다. WebMetal은 모두에게 Metal의 언어를 배우라고 강요하는 것과 같습니다. 하지만 우리의 접근법은 달라야 합니다.”
그는 세 개의 원을 모두 감싸는 더 큰 원을 그렸다.
“우리는 이 셋의 언어를 모두 번역할 수 있는 새로운 ‘공용어(Lingua Franca)’를 만드는 겁니다. 이 공용어로 작성된 명령서는 Vulkan 번역기를 통해 Vulkan으로, Metal 번역기를 통해 Metal로, DX12 번역기를 통해 DX12로 전달되는 거죠. 이 공용어의 이름은 아직 없지만, 그 개념이 바로 우리의 대안입니다.”
팀원들의 눈이 빛나기 시작했다. 뜬구름 같던 ‘추상화’라는 개념이 구체적인 그림으로 보이기 시작한 순간이었다.
“그럼 그 공용어의 첫 번째 문법은 무엇이 되어야 할까요?”
드미트리는 큰 원 안에 첫 번째 개념을 적었다. ‘Adapter’.
“우선, 어떤 GPU를 쓸지 컴퓨터에게 물어봐야 합니다. 노트북에는 보통 고성능 외장 GPU와 저전력 내장 GPU가 함께 있죠. ‘Adapter’는 시스템에 설치된 물리적인 GPU 목록 그 자체입니다. 개발자는 이 목록을 보고 어떤 GPU를 사용할지 명시적으로 선택할 수 있어야 합니다.”
이것은 WebGL과의 근본적인 차이점이었다. WebGL은 개발자가 GPU를 선택할 권한 없이, 브라우저가 알아서 정해주는 GPU를 쓸 수밖에 없었다.
그는 ‘Adapter’ 밑에 다음 단어를 적었다. ‘Device’.
“Adapter, 즉 사용할 GPU를 골랐다면, 이제 그 GPU와 통신할 수 있는 논리적인 연결을 생성해야 합니다. 그것이 바로 ‘Device’입니다. 일종의 사용 허가증이자, GPU와 대화하는 공식적인 창구죠. 이 Device가 생성되는 순간부터, 우리는 비로소 GPU에게 일을 시킬 준비가 되는 겁니다.”
명시적인 선택(Adapter)과 명시적인 연결(Device).
이 두 단계만으로도 새로운 API의 철학이 드러났다. 개발자에게 더 많은 제어권을 주고, 모든 과정은 애매함 없이 명확하게 이루어져야 한다는 것.
“이 개념들을 바탕으로 프로토타입을 만듭시다. 애플이 WebMetal을 내세웠다면, 우리는 우리의 것을 보여줘야 합니다. 빠르고, 간결하게. 우리의 철학이 단지 이론이 아니라 실제로 동작하는 코드임을 증명해야 합니다.”
드미트리의 목소리에 힘이 실렸다. 팀원들의 얼굴에도 동요 대신 결의가 서렸다.
“프로젝트 명은… NXT로 하죠.”
Next Generation, 다음 세대. 단순하지만 그들의 목표를 담기에 부족함이 없는 이름이었다.
그날 오후부터 구글의 한쪽 연구실에서는 새로운 움직임이 시작되었다. 화이트보드에 그려졌던 개념들이 한 줄 한 줄의 코드로 옮겨졌다. 키보드를 두드리는 소리가 연구실을 채우기 시작했다. 그것은 WebMetal에 대한 반격의 서막이자, 훗날 ‘WebGPU’라 불릴 위대한 설계도의 첫 번째 스케치였다.