구글 크롬도 모질라 웹앱 가속 프로젝트 지원

웹서비스 속도 개선에 크게 기여할 듯

일반입력 :2015/03/30 16:07

모질라 오픈소스 웹애플리케이션(이하 '웹앱') 가속 프로젝트가 마이크로소프트(MS)에 이어 구글의 지지까지 이끌어냈다.

지난달 MS가 윈도10 브라우저용 자바스크립트 처리기에 'asm.js'이라는 자바스크립트 축약판 언어의 최적화 기능을 지원키로 예고했는데, 구글 크롬 개발팀에서도 이미 이달초 선보인 크롬41 브라우저에 관련 기능을 탑재한 것으로 파악됐다.

모질라의 파이어폭스, 구글의 크롬, MS의 인터넷익스플로러(IE) 또는 코드명 '스파르탄'으로 알려진 차세대 브라우저가 asm.js 코드 최적화를 지원할 경우 대다수 사용자 환경에서 웹앱 체감 속도가 한층 개선될 수 있다. 모질라가 C와 C++ 코드를 asm.js로 바꾸는 기술도 개발중인만큼, 개발자들이 웹앱 성능 향상을 위해 자바스크립트 대신 네이티브 프로그래밍 언어를 쓰는 길도 넓어질 수 있다.

asm.js는 자바스크립트 규칙을 축약한 프로그래밍 언어다. 어떤 브라우저가 자바스크립트를 처리할 수 있다면 asm.js도 처리할 수 있다. 즉 웬만한 브라우저는 이미 asm.js를 지원한다. 다만 모질라는 자바스크립트 성능이 관건인 웹앱 구동 속도를 네이티브 앱 수준으로 높이기 위해 특정 코드 패턴을 모은 asm.js를 고안해낸 것이다. 브라우저가 이를 더 잘 처리할 수 있는 기술은 따로 구현된다.

실제로 모질라는 지난해 12월 asm.js를 일반 자바스크립트보다 더 잘 처리할 수 있는 기술 '오딘몽키'를 개발해 소개했다. 당시 모질라는 파이어폭스 브라우저 22 이후 버전에 오딘몽키를 탑재하면서 asm.js 코드 처리 시간을 네이티브 코드의 1.5배 수준으로 단축시켰다고 밝혔다. 사용자들에게 더 나은 브라우저 성능을 제공하려는 개발사들이 꽤 관심을 보일만한 상황이었다. (☞관련기사)

결국 지난달 MS가 차세대 윈도 브라우저에 asm.js 언어를 지원하겠다고 선언했다. 연내 출시될 윈도10 운영체제(OS)의 내장 브라우저에 들어갈 자바스크립트 처리기 '차크라(Chakra)'를 통해 asm.js를 더 빨리 처리할 수 있는 기술을 구현하겠다는 얘기였다. IE 브라우저 개발팀은 이를 위해 모질라 파이어폭스 팀과 협력 중이며 추후 프리뷰를 구현해 사용자 의견을 수렴하겠다고 밝혔다. (☞관련기사)

구글 측의 공식 홍보는 없지만, 구글도 크롬 브라우저에 asm.js 언어 지원 의사를 밝힌 상태였다. 크롬 자바스크립트 처리기 'v8' 프로젝트를 위한 공식 이슈리포트 사이트에 그 흔적이 있다. 약 2년전 asm.js 지원 관련 이슈가 등록됐는데, 여기에 지난달 초 크로미엄 프로젝트 참여 개발자가 '터보팬(TurboFan)'이라는 이름의 성능 최적화 기술로 asm.js 등의 성능을 높였다고 언급한 것이다. (☞링크)

구글의 터보팬은 v8의 자바스크립트 성능을 최적화하는 기술로 처음 만들어진 '크랭크샤프트(CrankShaft)'의 후속 프로젝트에 해당한다. 터보팬 기술은 아직 완성되지 않았지만, asm.js 처리 성능을 개선한 부분은 이미 크롬 브라우저에 적용된 듯하다. 모질라 기술블로그에 따르면 이달초 출시된 크롬41 버전에 터보팬 기술로 asm.js 코드 처리를 최적화하는 기능이 탑재된 것이다. (☞링크)

MS와 구글은 모질라의 asm.js가 브라우저의 웹앱 실행 성능을 끌어올리는 데 도움이 될 것이라 판단한 모양새다. asm.js를 처리할 수 있는 브라우저가 많은 사용자를 확보할 것이라 점칠 수 있다. 또다른 주요 브라우저 '사파리' 개발업체 애플은 어떨까? 애플 측에선 별다른 설명을 하지 않는 듯하고, 외부에서 사파리가 명시적으로 asm.js를 지원한다고 볼만한 근거도 아직 나타나지 않았다.

모질라 측에서는 애플 역시 asm.js 기술에 그 나름대로의 관심을 보이고 있다는 점에 기대를 건 모습이다. 모질라에 따르면 애플이 올해 새로운 자바스크립트 성능 비교사이트 '제트스트림(JetStream)'을 선보였는데, 여기에 asm.js 관련 성능측정 도구가 포함됐다. 이는 구글이 자바스크립트 성능측정 사이트 '옥탄'에 asm.js 항목을 더했듯 애플도 asm.js를 중시한 결과라는 게 모질라 측 풀이다. (☞링크)

주요 브라우저에 자바스크립트보다 asm.js 코드를 더 빨리 처리할 수 있는 기술이 일반화되면 웹 사용자와 웹앱 개발자 각각의 환경에 변화가 예상된다. 개발자 입장에선 C나 C++ 코드 위주의 네이티브 앱 영역이던 복잡한 게임이나 3D콘텐츠 처리를 웹 기반으로 바꿀 기회가 생긴다. 향후 사용자들에게 플러그인이나 설치프로그램 다운로드 없이 게임과 3D콘텐츠를 활용할 여지가 커진단 얘기다.

에픽과 유니티 등 유명 게임 엔진 업체들은 파이어폭스에서 돌아가는 asm.js 기술 활용에 관심을 보여 왔다. 이들은 웹에서 고성능 처리를 요하는 게임 기반 기술을 발전시키기 위해 지난해 3월 모질라와 손을 잡았다. 최신 브라우저에서 지원하는 웹용 그래픽 가속처리 표준 웹GL(WebGL)과 당시 공개된 asm.js 기술로 웹게임 성능을 플러그인 없이 네이티브 수준으로 높이려 했던 것이다. (☞관련기사)

관련기사

모질라는 실제 네이티브 앱 개발 언어인 C와 C++ 코드를 asm.js로 바꾸는 기술을 개발 중이기도 하다. 엠스크립튼(Emscripten)이라는 오픈소스 기반의 소스코드 변환기 얘기다. 원래 엠스크립튼은 C++ 코드를 자바스크립트로 바꿔 주는 컴파일러였다. 모질라가 엠스크립튼을 만들다, C++ 코드를 변환한 결과물로 일반 자바스크립트보다 빨리 실행되는 패턴을 발견해 asm.js란 이름을 붙인 것이다.

asm.js으로 성능상 이득을 얻는 브라우저가 많아질 경우 구글의 'PNaCl'같은 기술의 존재감이 약해질 수 있다. PNaCl은 HTML5와 자바스크립트 대신 C와 C++같은 언어를 기반으로 웹앱 개발을 할 수 있도록 해준다. 다만 이를 별도 기술 없이 구동 가능한 브라우저는 구글 크롬 뿐이라 활용 폭이 넓지 않다. 지난해부터 스마트TV 플랫폼에 PNaCl 앱을 지원하는 삼성전자가 거의 유일한 우군이다. (☞관련기사)