
WebGPU라는 이름을 들으면 '웹 브라우저에서 쓰는 그래픽 기술이겠네'라고 생각하기 쉬운데요. 사실 요즘 재미있는 일은 브라우저 바깥에서 벌어지고 있어요. 'Learn WebGPU for C++'는 이름 그대로 C++ 개발자를 위해 WebGPU를 처음부터 차근차근 가르쳐주는 무료 온라인 교재인데요. 웹 기술인 줄만 알았던 WebGPU가 어떻게 네이티브 그래픽 프로그래밍의 새로운 선택지가 됐는지를 잘 보여주는 자료라서 소개해 드려요.
WebGPU가 뭐길래 C++에서 쓰나요
WebGPU는 원래 웹 표준 기구인 W3C가 만들고 있는 차세대 그래픽 API 표준이에요. 낡은 WebGL을 대체하려고 나왔죠. 그런데 설계 과정에서 흥미로운 일이 생겼어요. 브라우저가 WebGPU를 구현하려면 어차피 내부적으로 Vulkan(리눅스·안드로이드), Metal(애플), DirectX 12(윈도우) 같은 각 운영체제의 저수준 그래픽 API 위에 얹히는 구현체를 만들어야 하는데, 이 구현체들이 브라우저 밖에서도 쓸 수 있는 라이브러리로 공개된 거예요. 구글이 크롬용으로 만든 Dawn, 파이어폭스에 들어가는 러스트 기반 wgpu가 대표적이고, webgpu.h라는 공통 C 헤더 규격까지 있어서 C++ 프로그램에서 바로 가져다 쓸 수 있어요. 한 번 작성한 그래픽 코드가 윈도우, 맥, 리눅스에서 그대로 도는 거죠.
이게 왜 반가운 일이냐면, 지금까지 C++ 그래픽 프로그래밍의 선택지가 다 애매했거든요. 수십 년 표준이던 OpenGL은 애플이 사실상 버려서 미래가 불투명하고, 후계자인 Vulkan은 성능은 뛰어나지만 삼각형 하나 그리는 데 코드가 천 줄 가까이 필요할 만큼 진입 장벽이 높아요. Metal은 애플 전용, DirectX는 윈도우 전용이고요. WebGPU는 이들 위에 얹히는 '현대적이면서 적당히 단순한' 추상화 계층이라, 학습 난이도와 이식성 사이의 균형점으로 주목받고 있어요.
교재는 뭘 가르쳐주나
이 교재는 GLFW로 창을 띄우는 것부터 시작해서, GPU를 추상화한 개념인 어댑터와 디바이스를 얻고, 버퍼에 데이터를 담아 렌더링 파이프라인을 구성하고, WGSL이라는 셰이더 언어로 GPU에서 도는 코드를 짜는 과정까지 단계별로 안내해요. 셰이더가 뭐냐면, CPU가 아니라 GPU 위에서 수천 개의 코어가 동시에 실행하는 작은 프로그램이에요. 후반부에는 3D 렌더링과 컴퓨트 셰이더까지 다루는데, 컴퓨트 셰이더는 화면에 그림을 그리는 용도가 아니라 GPU의 병렬 연산력으로 물리 시뮬레이션이나 행렬 계산 같은 일반 계산을 하는 프로그램이에요. AI 추론이 결국 거대한 행렬 계산이라는 걸 생각하면 요즘 특히 값진 챕터죠.
업계 맥락
브라우저 쪽에서는 크롬에 이어 다른 브라우저들도 WebGPU 지원을 넓혀가고 있고, 네이티브 쪽에서는 러스트 게임 엔진 Bevy가 wgpu 위에서 돌아가는 등 생태계가 꾸준히 자라는 중이에요. 온디바이스 AI 실행 환경들이 WebGPU를 연산 백엔드로 채택하는 흐름도 있고요. '웹 표준으로 시작했지만 크로스플랫폼 네이티브 표준으로 자라는' 독특한 궤적을 그리고 있는 셈이에요.
한국 개발자에게 주는 시사점
그래픽스나 GPU 프로그래밍을 배우고 싶었는데 Vulkan의 벽 앞에서 포기했던 분에게 좋은 재도전 기회예요. 개념 구조는 현대 API와 같지만 코드량은 훨씬 적으니, GPU가 어떻게 일하는지 원리를 익히는 입문 코스로 손색이 없거든요. 게임, 데이터 시각화, 온디바이스 AI처럼 GPU를 다루는 직군을 노린다면 포트폴리오 재료로도 좋고, 무엇보다 전부 무료라서 부담이 없어요.
마무리
정리하면, WebGPU는 이제 웹만의 기술이 아니라 C++로 어디서나 도는 그래픽·연산 코드를 짤 수 있는 현실적인 선택지가 됐어요. 여러분이라면 다음 프로젝트에서 Vulkan과 WebGPU 중 무엇을 고르시겠어요? 성숙한 생태계와 낮은 진입 장벽 사이의 선택, 어느 쪽에 손이 가나요?
🔗 출처: Hacker News