보이지 않는 벽

1

발행일: 2025년 08월 03일

2016년, 캘리포니아 마운틴뷰.
구글플렉스의 아침은 언제나처럼 활기찼다. 캠퍼스를 가로지르는 형형색색의 자전거, 카페테리아에서 흘러나오는 신선한 원두 향기, 그리고 세상의 문제를 풀기 위해 모인 천재들의 조용한 열기까지.

드미트리 말리쇼프는 그 열기의 한가운데에 있었다. 크로미움(Chromium) 그래픽스 팀의 핵심 엔지니어인 그의 모니터 위에는, 복잡하게 얽힌 3D 자동차 모델이 힘겹게 회전하고 있었다. 매끄러워야 할 표면은 미세하게 끊겼고, 빛의 반사는 한 박자씩 늦게 따라왔다. 평범한 사용자는 눈치채지 못할지도 모를 미세한 버벅임. 하지만 그의 눈에는 그것이 거대한 벽처럼 보였다.

‘또 CPU가 비명을 지르는군.’

그는 습관처럼 성능 분석 도구를 열었다. 화면 한쪽에 선명한 그래프가 떠올랐다. 예상대로였다. CPU 사용률을 나타내는 막대는 거의 천장에 닿을 듯 붉게 타오르고 있었다. 반면, 그래픽 처리를 전담하는 GPU의 막대는 한가롭게 바닥을 기고 있었다.

이 불균형. 이것이 문제의 핵심이었다.

웹 브라우저에서 3D 그래픽을 구현하는 표준 기술인 WebGL. 그것은 분명 혁명이었다. 플러그인 없이 웹에서 3D를 구현한다는 발상만으로도 개발자들은 열광했다. 드미트리 자신도 WebGL이 다양한 운영체제에서 원활히 작동하도록 돕는 ‘ANGLE’ 프로젝트에 깊이 관여하며 그 혁명의 한복판에 있었다. 그는 WebGL의 영광을 누구보다 잘 알고 있었다.

하지만 시대가 변했다.

“이봐, 드미트리. 아직도 그거랑 씨름하는 거야?”

옆자리의 동료, 코리가 커피 잔을 들고 다가와 말을 걸었다. 그는 드미트리의 모니터를 흘깃 보더니 혀를 찼다.

“WebGL의 한계지. 저 정도 복잡성을 가진 모델을 돌리려면 CPU가 너무 많은 일을 해야 하잖아. GPU는 놀고 있는데 말이야.”

드미트리는 말없이 고개를 끄덕였다. 코리의 말은 정확했다.

현재의 WebGL 구조는 마치 숙련된 조련사(CPU)가 말 한 필(GPU)에게 일일이 채찍질하며 명령하는 것과 같았다. “왼발 들어! 방향은 저쪽으로! 이제 오른발! 속도는 조금 더!” CPU는 GPU가 다음 작업을 하기 위해 필요한 모든 상태 변경과 데이터 전송을 지시해야 했다. 드로 콜(Draw Call) 하나하나가 CPU에게는 부담스러운 작업이었다.

그 결과는 명확했다. 진짜 일꾼인 GPU는 명령을 기다리느라 시간을 허비하고, 연락책인 CPU는 과부하에 걸려 전체 시스템의 발목을 잡는 현상. 이것이 바로 그의 모니터에 나타난 ‘버벅임’의 정체였다.

몇 년 전까지만 해도 이 정도는 감수할 만했다. 하지만 지금은 아니었다.

세상의 중심은 데스크톱에서 모바일로 빠르게 이동하고 있었다. 손안의 스마트폰에서 사람들은 더 빠르고, 더 화려하며, 더 부드러운 경험을 원했다. 배터리를 미친 듯이 소모하는 CPU 중심의 작업 방식은 모바일 시대에 어울리지 않는 구시대의 유물이었다.

설상가상으로, 유니티(Unity)와 언리얼(Unreal) 같은 거대 게임 엔진들이 웹을 새로운 플랫폼으로 주목하기 시작했다. 그들이 만든 고품질의 3D 게임과 애플리케이션을 웹에서 그대로 구현하고 싶어 했다. 하지만 WebGL이라는 좁은 문은 그들의 잠재력을 모두 담아내기엔 역부족이었다.

“네이티브(Native)에선 이미 답이 나왔는데 말이지.”

드미트리가 나지막이 읊조렸다.

그의 머릿속에는 이미 데스크톱과 모바일 세계를 지배하기 시작한 차세대 그래픽스 API들의 이름이 스쳐 지나갔다. 마이크로소프트의 DirectX 12, 애플의 Metal, 그리고 크로노스 그룹의 Vulkan.

이들은 CPU의 역할을 최소화하고, 개발자가 GPU의 성능을 거의 직접적으로 제어할 수 있도록 설계된 ‘로우 레벨(Low-level)’ API였다. CPU가 하나하나 명령하는 대신, 수많은 명령을 한 번에 묶어 GPU에 던져주고 “이 목록대로 전부 처리해!”라고 말하는 것과 같았다. CPU는 자유로워졌고, GPU는 비로소 자신의 모든 잠재력을 터뜨릴 수 있게 되었다.

웹은 뒤처지고 있었다. 가장 개방적이고 접근성이 높아야 할 웹이, 기술의 최전선에서 밀려나고 있었다.

드미트리는 화면 속에서 버벅이는 자동차 모델을 껐다. 이것은 단순히 하나의 렌더링 문제를 해결하는 차원의 일이 아니었다. 이것은 웹의 미래에 대한 질문이었다.

웹은 계속해서 낡은 마차에 머무를 것인가, 아니면 새로운 시대의 초고속 열차로 갈아탈 것인가.

그는 결심했다. 더 이상 이 보이지 않는 벽 앞에서 좌절하고 있을 수만은 없다고. 벽을 부술 수 없다면, 벽을 넘어설 새로운 문을 만들어야 한다고.

그 순간, 그의 마음속에서 ‘코드의 연금술사’로서의 본능이 꿈틀거렸다. 낡은 시대를 끝내고, 웹 그래픽의 새로운 여명을 열어야 할 때가 온 것이다. 그 여정의 이름은 아직 정해지지 않았지만, 드미트리는 자신이 그 첫걸음을 내디뎌야 함을 직감했다. 창밖으로 쏟아지는 캘리포니아의 햇살이 마치 새로운 시대의 서광처럼 느껴졌다.