웹어셈블리
웹어셈블리(WebAssembly, 간단히 Wasm)는 실행 프로그램 및 그와 일치하는 텍스트 어셈블리어, 그리고 이러한 프로그램과 호스트 환경 간 통신을 용이케하는 인터페이스를 위한 이식 가능한 이진 코드 포맷을 정의하는 개방형 표준이다.[1][2][3][4] 웹어셈블리의 주 목적은 웹 페이지에서 고성능의 애플리케이션을 가능케 하는 것이지만 포맷은 다른 환경에서도 실행 및 연동되도록 설계되어 있다.[5][6]
![]() | |
패러다임 | 명령형, 구조적, 식 지향 |
---|---|
설계자 | W3C |
개발자 | |
발표일 | 2017년 3월 |
자료형 체계 | 정적 |
라이선스 | 아파치 라이선스 |
파일 확장자 |
|
웹사이트 | webassembly |
영향을 받은 언어 | |
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]
같이 보기
참고 문헌
- Haas, Andreas; Rossberg, Andreas; Schuff, Derek L.; Titzer, Ben L.; Gohman, Dan; Wagner, Luke; Zakai, Alon; Bastien, JF; Holman, Michael (June 2017). “Bringing the web up to speed with WebAssembly”. 《Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation》 (Association for Computing Machinery): 185–200. doi:10.1145/3062341.3062363.
- Watt, Conrad (2018). “Mechanising and Verifying the WebAssembly Specification” (PDF). 《ACM SIGPLAN International Conference on Certified Programs and Proofs》 (ACM) 7. doi:10.1145/3167082.
내용주
각주
데모
외부 링크
- 웹어셈블리
- 공식 웹사이트
- W3C Community Group
- WebAssembly Design
- “WebAssembly”, 《MDN Web Docs》 (미국 영어) – with info on browser compatibility and specifications (WebAssembly JavaScript API)
- WebAssembly: What and What Next? at 유튜브