Offcanvas

개발자 / 검색|인터넷 / 애플리케이션

웹어셈블리 포터블 코드, 새로워지는 점은?

2017.08.28 Paul Krill  |  InfoWorld
웹어셈블리(WebAssembly) 포터블 코드 포맷이 초창기의 목표를 넘어 확장되고 있다. 월드 와이드 웹 콘소시움(WWWC)에 소재한 후원자들이 웹어셈블리에 더 많은 언어를 접목시키고 성능 향상을 준비하고 있는 것이다.

2015년 소개된 웹어셈블리는 브라우저에서 연산 집약적인 작업을 수행할 때 자바스크립트의 성능을 넘어설 수 있도록 고안된 로우-레벨 포맷이다. 이는 와이어보다 작은 바이너리 코드 포맷을 제공하며 더 빠르게 로드한다. 그리고 자바스크립트보다 나은 성능을 갖췄다. 이러한 특성에 기반해 웹어셈블리는 웹에 기반한 캐드 프로그램, 3D 모델, 계산기, 게임 등과 같은 애플리케이션에 유용성을 지니게 된다.

브라우저 벤더들의 웹어셈블리 후원
웹어셈블리가 유용하기 위해서는 브라우저의 지원이 핵심적이다. 현재 애플과 구글, 마이크로소프트, 모질라와 같은 주요 브라우저 벤더가 웹어셈블리에 적극적이다.

웹어셈블리 팀에 속한 모질라 엔지니어 루크 와그너에 따르면 W3C 웹어셈블리 그룹에서는 초기 버전의 드래프트에 대한 광범위한 합의가 존재한다. 웹어셈블리는 3월 MVP(minimum viable product) 단계에 도달했으며, 현재 파이어폭스와 크롬 브라우저에 적용돼 있다. 마이크로소프트는 웹어셈블리 MVP를 엣지 브라우저 베타 빌드에서 지원하고 있다. 애플 사파리의 브라우저 엔진인 웹킷은 6월 웹어셈블리를 전면 구현했다.

더 많은 언어 지원
웹어셈블리의 핵심 목표는 자바스크립트 이외의 언어로 작성된 코드를 브라우저 내에서 실행할 수 있도록 하는 것이다. 다른 언어를 위한 일종의 컴파일 타깃으로 동작하는 방식을 통해서다. 현재 C++이 웹어셈블리와 함께 사용할 수 있는 언어로 선호되고 있다.

와그너에 따르면 기술적으로 웹어셈블리와 다른 언어를 사용할 수 있으며, 이를 위한 실험적인 구현이 존재했다. 그러나 현재 다른 언어들은 적정한 성능과 메모리 점유, DOM 통합을 달성할 수 없는 상태다.

와그너는 웹어셈블리가 자바, C#, 파이썬과 같은 상위 가비지 콜렉션을 이용하는 언어를 지원하도록 개선될 것이라고 전했다. 그는 "이미 브라우저에 있는 가비지 컬렉터에 연결되는 방식으로 웹어셈블리에 직접 지원을 추가하는 방법에 대한 논의가 이뤄져 왔다. 그러나 달성하기까지는 2년 여가 더 걸릴 수 있다"라고 말했다.

이 밖에 구글 웹 플랫폼 그룹 프로덕트 매니저 알렉스 코모로스케는 자바와 같이 관리되는 언어의 경우 웹어셈블리로 연결되는 추가 에디션이 필요할 수 있다고 덧붙였다.

웹어셈블리에서 고려되고 있는 다른 개선점으로는 다음과 같은 것들이 있다.

- 셰어드 메모리 및 멀티쓰레딩. 와그너는 C++ 이용자에게 최고 요구 사항이 바로 이것일 수 있다고 전했다. 현재 이를 위한 제안이 논의되고 있으며 2018년까지 완료될 것이 유력하다.

- 브라우저 사이의 인터널 최적화

- 예외 처리 및 SIMD 기능성. 컴파일된 코드가 더 빠르게 구동하기 위해서다. ciokr@idg.co.kr 
CIO Korea 뉴스레터 및 IT 트랜드 보고서 무료 구독하기
추천 테크라이브러리

회사명:한국IDG 제호: CIO Korea 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아01641 등록발행일자 : 2011년 05월 27일

발행인 : 박형미 편집인 : 천신응 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.