두 개의 엔진

722025년 09월 07일5

레나가 던진 ‘타일 기반 렌더러(TBR)에 최적화된 새로운 백엔드’라는 화두는 Dawn 팀을 두 개의 파벌로 나누었다.

한쪽은 카이를 중심으로 한 ‘안정파’였다.
“우리는 이미 수억 명의 사용자를 책임지고 있는 안정적인 엔진을 가지고 있습니다. 지금 우리에게 필요한 것은 또 다른 혁명이 아니라, 기존 Dawn의 코드를 점진적으로 개선하여 TBR 아키텍처에 더 친화적으로 만드는 것입니다. 예를 들어, 렌더 패스의 병합을 더 지능적으로 처리하거나, 불필요한 메모리 전송을 줄이는 최적화를 추가하는 거죠. 안정성을 해칠 수 있는 대규모 재설계는 너무 위험합니다.”

그의 주장은 합리적이고 현실적이었다. 그들은 이미 드라이버 버그와 플랫폼 파편화라는 지옥을 경험했다. 또다시 그 길을 걷고 싶지 않았다.

다른 한쪽은 레나와 젊은 엔지니어들을 중심으로 한 ‘혁신파’였다.
“점진적인 개선만으로는 부족합니다! TBR은 근본적으로 다른 방식으로 작동합니다. 우리는 TBR의 온-칩 메모리를 완벽하게 제어할 수 있는, 처음부터 완전히 새롭게 설계된 렌더 패스 관리자가 필요합니다. 기존의 코드를 땜질하는 방식으로는, TBR의 잠재력을 100% 끌어낼 수 없습니다. 지금의 작은 성능 하락은 시작일 뿐입니다. 앞으로 모든 하드웨어가 TBR로 전환될 텐데, 그때 가서 후회할 겁니까?”

그들의 목소리에는 미래에 대한 불안과 함께, 기술적인 이상을 향한 순수한 열정이 담겨 있었다.

회의실의 공기는 팽팽했다. 양쪽 모두 일리가 있었다. 드미트리는 이 논쟁의 중재자이자, 최종 결정권자였다. 그의 선택에 Dawn의 미래, 나아가 WebGPU의 성능이 달려 있었다.

그는 며칠 밤낮으로 고민했다.
두 개의 길. 안정적인 개선이냐, 위험하지만 잠재력이 큰 혁신이냐.
그는 과거의 자신을 떠올렸다. 만약 그가 WebGL을 ‘점진적으로 개선’하는 길을 택했다면, WebGPU는 결코 태어나지 못했을 것이다. 그는 본능적으로 혁신의 편에 서고 싶었다.

하지만 지금의 그는 혼자가 아니었다. 그의 결정은 수많은 개발자와 사용자에게 영향을 미쳤다. 섣부른 혁신이 가져올 혼란과 불안정성의 대가는 너무나도 컸다.

고민 끝에, 그는 마침내 결정을 내렸다.
그리고 그의 결정은, 모두의 예상을 뛰어넘는 것이었다.

팀 미팅. 드미트리는 두 파벌의 리더, 카이와 레나를 앞에 두고 말했다.
“나는 당신들 중 누구의 손도 들어주지 않을 겁니다.”

회의실에 정적이 흘렀다.

“대신, 우리는 두 개의 길을 모두 갈 겁니다.”

그는 화이트보드에 Dawn 엔진의 구조를 그렸다.
그리고 그 안에, 두 개의 분리된 길을 그렸다.

“카이, 당신의 팀은 지금처럼 기존의 Dawn 백엔드, 우리가 ‘즉시 모드(Immediate Mode) 백엔드’라고 부를 그것을 계속해서 유지보수하고 안정화시켜 주십시오. 세상의 수많은 x86 GPU들은 여전히 이 방식에 최적화되어 있습니다. 우리는 그 사용자들을 결코 버려서는 안 됩니다.”

그는 이어서 레나를 바라보았다.
“그리고 레나, 나는 당신에게 새로운 팀을 맡기겠습니다. 나는 이 팀을 ‘Dawn-TBR’이라고 부르겠습니다. 당신의 팀은 기존 코드에 얽매이지 말고, 오직 타일 기반 렌더러의 성능을 극한까지 끌어내는 것을 목표로, 완전히 새로운 렌더링 백엔드를 처음부터 설계하고 구현하십시오.”

“두 개의 엔진을 동시에 개발한다고요?”
카이가 믿을 수 없다는 듯 물었다. “인력이 두 배로 드는 일입니다. 관리 비용도 엄청날 거고요.”

“알고 있소, 카이.”
드미트리의 목소리는 단호했다.
“하지만 이것이 유일한 방법이오. 우리는 과거를 존중하고 현재를 안정시켜야 할 책임과, 동시에 미래를 준비하고 혁신을 이끌어야 할 책임을 모두 가지고 있소. 둘 중 하나를 포기할 수는 없소.”

그의 최종 결정이었다.
Dawn은 이제 하나의 엔진이 아니었다.
하나의 API 인터페이스 아래, 서로 다른 하드웨어 아키텍처에 최적화된 두 개의 심장을 품게 된 것이다.

GPUDevice가 생성되는 시점에, Dawn은 현재 하드웨어의 종류를 감지한다. 만약 전통적인 데스크톱 GPU라면, 카이의 팀이 만든 안정적인 ‘즉시 모드 백엔드’가 활성화된다. 만약 모바일이나 최신 ARM 기반의 GPU라면, 레나의 팀이 만든 실험적이지만 강력한 ‘TBR 백엔드’가 그 임무를 이어받는다.

개발자는 아무것도 알 필요가 없었다. 그들은 그저 똑같은 WebGPU API를 호출할 뿐이었다. 하지만 그 이면에서는, Dawn이 스스로 최적의 엔진을 선택하여 최고의 성능을 이끌어내고 있었다.

레나의 눈에는 존경과 함께, 엄청난 책임감의 불꽃이 타올랐다. 그녀는 이제 단순히 문제를 제기하는 비판자가 아니었다. 그녀는 자신의 비전을 코드로 증명해야 하는, 새로운 프로젝트의 리더가 된 것이다.
카이 역시 드미트리의 깊은 뜻을 이해하고 고개를 끄덕였다. 그는 이제 새로운 기술과의 경쟁 속에서, 기존 기술의 가치를 지키고 발전시켜야 하는 중요한 임무를 맡게 되었다.

드미트리는 이제 더 이상 모든 것을 혼자 결정하고 이끄는 영웅이 아니었다.
그는 이제, 서로 다른 철학을 가진 두 개의 팀이 각자의 길을 가면서도, 결국에는 하나의 목표를 향해 나아갈 수 있도록 판을 짜고, 그들의 성장을 돕는 지혜로운 설계자가 되어 있었다. 그의 리더십은 새로운 단계로 진화하고 있었다.