애플의 합류, 마침내 완성된 퍼즐.

432025년 08월 24일4

구글 맵스가 WebGL의 위력을 전 세계에 과시하는 동안에도, 애플의 침묵은 계속되고 있었다. 파이어폭스와 크롬이 웹 3D의 영토를 빠르게 확장해 나가는 사이, 사파리는 여전히 2차원의 세계에 머물러 있었다.

개발자 커뮤니티의 불만은 점점 커져갔다.
“내 WebGL 포트폴리오 사이트가 아이폰에서는 그냥 까만 화면으로 나와요.”
“클라이언트가 아이패드에서도 동작하는 3D 제품 시뮬레이터를 만들어 달라고 하는데, 불가능하다고 설명하느라 진땀을 뺐습니다.”

WebGL의 ‘한 번 작성하면, 어디서든 실행된다’는 약속은, 애플이라는 거대한 벽 앞에서 절반의 진실이 되어가고 있었다.

하지만 물밑에서는 변화의 조짐이 감지되고 있었다.
애플이 관리하는 오픈소스 브라우저 엔진, 웹킷(WebKit)의 코드 저장소에서는 ‘WebGL’과 관련된 커밋(코드 변경 이력)이 꾸준히 발견되었다. 애플의 엔지니어들이 외부에는 알리지 않은 채, 조용히 WebGL 구현 작업을 진행하고 있다는 명백한 증거였다.

그들은 자신들만의 방식으로, 극도의 신중함을 유지하며 기술을 검증하고 있었다. 특히 모바일 기기에서의 성능과 배터리 효율, 그리고 보안 취약성에 대한 집요한 테스트가 이루어지고 있다는 소문이 흘러나왔다.

그러던 2013년 6월, 애플의 연례 개발자 회의인 WWDC(Worldwide Developers Conference)가 열렸다. 전 세계의 시선이 쏠린 기조연설 무대. 새로운 iOS 7과 OS X Mavericks가 발표되던 그 순간, 스크린의 기능 목록 슬라이드 한쪽에 아주 작게, 하지만 분명하게 한 단어가 포함되어 있었다.

Safari - WebGL support

행사장에 있던 개발자들 사이에서 짧은 탄성이 터져 나왔다. 길고 길었던 침묵이 마침내 깨지는 순간이었다.

몇 달 후, OS X Mavericks와 함께 출시된 사파리 7, 그리고 iOS 8과 함께 배포된 모바일 사파리는 WebGL을 기본으로 활성화했다.

애플의 합류는 단순히 또 하나의 브라우저가 추가된 것 이상의 의미를 가졌다.

첫째, 모바일 웹 3D 시대의 본격적인 개막을 의미했다.
이제 개발자들은 안드로이드의 크롬과 iOS의 사파리, 양대 모바일 플랫폼 모두에서 동작하는 WebGL 콘텐츠를 만들 수 있게 되었다. ‘아이폰에서는 안 된다’는 족쇄가 풀리자, 모바일 웹 게임, 인터랙티브 광고, 3D 쇼핑 경험 등 새로운 시장이 폭발적으로 열리기 시작했다.

둘째, 기술에 대한 신뢰도가 완성되었다.
보안과 안정성에 가장 까다로운 기준을 가진 애플이 마침내 WebGL을 받아들였다는 사실은, WebGL이 이제 충분히 성숙하고 안전한 기술이라는 것을 공인하는 ‘품질 보증서’와도 같았다. 남아있던 일부 기업들의 막연한 불안감을 해소시키는 결정적인 계기가 되었다.

셋째, 완벽한 표준의 승리였다.
이로써 WebGL은 모든 주요 데스크톱 및 모바일 브라우저(파이어폭스, 크롬, 사파리, 인터넷 익스플로러 11, 오페라)에서 지원되는, 명실상부한 웹 3D의 단일 표준으로 자리매김했다. 블라디미르가 처음 꿈꿨던 ‘파편화 없는 통일된 3D 웹’이라는 이상이 마침내 현실이 된 것이다.

애플의 구현 방식은 그들의 성격만큼이나 독특했다. 예를 들어, 동시에 실행할 수 있는 WebGL 컨텍스트의 수를 엄격하게 제한하거나, 특정 시간 이상 GPU를 과도하게 사용하면 렌더링을 강제로 중지시켜 배터리 소모를 막는 등의 보호 장치를 다른 브라우저보다 훨씬 더 공격적으로 적용했다.

하지만 중요한 것은, 그들 역시 WebGL 1.0 명세서를 100% 준수했다는 점이다. 개발자들은 몇 가지 예외 처리만 추가하면, 기존의 WebGL 코드를 거의 그대로 사파리에서 실행시킬 수 있었다.

블라디미르는 자신의 아이폰에서 사파리를 열고, 예전에 만들었던 데모 페이지에 접속했다. 그의 화면 위에서 3D 모델이 부드럽게 회전하는 것을 보았을 때, 그는 비로소 거대한 퍼즐의 마지막 조각이 제자리에 맞춰졌음을 느꼈다. 길고 긴 기다림이었지만, 그만한 가치가 있었다. 웹의 새로운 차원은 이제 그 어떤 장벽도 없이 모든 사용자에게 열려 있었다.