상위 질문
타임라인
채팅
관점
웹어셈블리
웹에서 기계어를 컴파일하기 위한 포터블 효율 바이트코드 포맷 위키백과, 무료 백과사전
Remove ads
웹어셈블리(WebAssembly, 간단히 wasm)는 실행 프로그램 및 그와 일치하는 텍스트 어셈블리어, 그리고 이러한 프로그램과 호스트 환경 간 통신을 용이케하는 인터페이스를 위한 이식 가능한 이진 코드 포맷을 정의하는 개방형 표준이다.[1][2][3][4] 웹어셈블리의 주 목적은 웹 페이지에서 고성능의 애플리케이션을 가능케 하는 것이지만 포맷은 다른 환경에서도 실행 및 연동되도록 설계되어 있다.[5][6]
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]
Remove ads
역사
웹어셈블리는 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.
내용주
각주
데모
외부 링크
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads