웹어셈블리

웹에서 기계어를 컴파일하기 위한 포터블 효율 바이트코드 포맷

웹어셈블리(WebAssembly, 간단히 Wasm)는 실행 프로그램 및 그와 일치하는 텍스트 어셈블리어, 그리고 이러한 프로그램과 호스트 환경 간 통신을 용이케하는 인터페이스를 위한 이식 가능한 이진 코드 포맷을 정의하는 개방형 표준이다.[1][2][3][4] 웹어셈블리의 주 목적은 웹 페이지에서 고성능의 애플리케이션을 가능케 하는 것이지만 포맷은 다른 환경에서도 실행 및 연동되도록 설계되어 있다.[5][6]

웹어셈블리
패러다임명령형, 구조적, 식 지향
설계자W3C
개발자
발표일2017년 3월(7년 전)(2017-03)
자료형 체계정적
라이선스아파치 라이선스
파일 확장자
  • .wat
  • .wasm
웹사이트webassembly.org
영향을 받은 언어

Wasm은 자바스크립트를 대체하지는 않는다. 브라우저에서 Wasm을 사용하려면 사용자는 Emscripten SDK를 사용하여 C++(또는 D 또는 러스트 등의 기타 LLVM 지원 언어) 소스 코드를 이진 파일로 컴파일한 다음 동일한 샌드박스에서 일반 자바스크립트 코드로 실행할 수 있다.[note 1] Emscripten은 WebGL 등 흔히 사용되는 여러 환경 인터페이스들의 바인딩을 제공한다. 확장 가능한 메모리와 수많은 스케일러 값에만 접근이 가능하다. 문서 객체 모델(DOM) 직접 접근은 하지 않으나 이를 위한 프록시 함수를 만들 수 있다. (예를 들면 stdweb,[11] web_sys,[12], js_sys을 통해)[13]

W3C모질라, 마이크로소프트, 구글, 애플의 기여와 함께 표준을 관리하고 있다.[14]

2019년 6월 Technische Universität Braunschweig의 연구에 따르면 알렉사 최상위 100만 개의 웹사이트에서의 웹어셈블리 사용률 분석 결과 가장 현저하게 사용되고 있는 부분은 악성 가상 화폐 채굴이었음이 드러났다.[15][16][17]

역사

웹어셈블리는 2015년 처음 발표되었으며,[18] 첫 시연은 유니티의 앵그리 봇(Angry Bots)을 모질라 파이어폭스[19] 구글 크롬,[20] 마이크로소프트 엣지에서 실행하는 것이었다.[21] 선도자격 기술은 모질라, 구글 네이티브 클라이언트Asm.js이었으며[22][23] 최초 구현체는 asm.js의 기능 집합에 기반을 두었다.[24]

같이 보기

참고 문헌

내용주

각주

데모

외부 링크