의견.png

웹어셈블리

해시넷
freeyu3 (토론 | 기여)님의 2019년 6월 26일 (수) 14:47 판
이동: 둘러보기, 검색

웹어셈블리(Web Assembly) 또는 와즘(WASM)은 구글, 마이크로소프트, 애플, 모질라가 소속된 웹어셈블리 커뮤니티 그룹이 웹 성능을 향상시키기 위해 2015년부터 개발한 웹브라우저 런타임이자 표준 포맷이다.

개요

기존에 C, C++ 등 언어로 작성된 소스 코드를 웹어셈블리로 변환하여 웹 응용 프로그램 개발에 재활용할 수 있다. 그리고 기계어에 가까운 포맷 표준으로 웹 응용 프로그램의 실행 성능과 하드웨어 이식성이 높다. 예를 들면, 얼굴 인식 웹 응용 프로그램을 개발할 경우 기존에 C언어로 개발한 소스 코드가 있어도 브라우저에서 실행할 수 있는 방법이 없어 자바스크립트로 새로 구현해야 했지만, 웹어셈블리를 이용하여 C 소스 코드를 웹어셈블리 코드로 변환하게되면 자바스크립트에서 사용할 수 있다. 따라서 기존 소스 코드를 재활용할 수 있고 응용 프로그램 실행 성능도 개선될 수 있다.

특히, 기존에 웹 응용 프로그램으로의 개발이 어렵고 성능도 높아야 하는 게임, 가상현실(VR), 증강현실(AR) 등 여러 분야에 웹어셈블리를 적용하여 생산성을 높일 수 있다. 국제 웹 표준화 단체인 월드 와이드 웹 컨소시엄(W3C: World Wide Web Consortium)에서 2017년에 개발하였다. W3C 웹어셈블리 작업반에서 모질라(Mozilla), 마이크로소프트(Microsoft), 구글(Google)과 애플(Apple) 등 주요 브라우저 제작사와 관련 기업들이 협력하여 표준화를 추진한다. [1]

수행 작업

웹어셈블리(WASM)는 웹에서 사용할 수 있는 효율적인 저수준 바이트 코드다. 웹어셈블리는 사용하면 자바스크립트가 아닌 C언어 혹은 C++등을 사용하여 프로그램을 작성한 다음 런타임 이전에 웹어셈블리로 컴파일이 가능하다. 이로서 우리는 실행이 매우 빠른 웹 앱을 얻을 수 있다.

실행

현재 WASM은 네이티브 코드보다 20%밖에 느리지 않다. 이것은 정말 놀라운 결과다. 이것은 샌드박스 환경으로 컴파일된 후 보안상 취약성이 없도록 하기 위해 매우 많은 제약 조건 하에서 실행되었음에도 불구하고 나타난 결과다. 실제 네이티브 코드에 비해서 속도 차이는 최소화 되어가고 있고 앞으로 WASM은 더더욱 빨라질 것이다.

각주

  1. "웹어셈블리〉, 《네이버 지식백과》

참고자료

같이 보기


  의견.png 이 웹어셈블리 문서는 프로그래밍에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.