웹 어셈블리란?

WebAssembly는 최신 웹 브라우저에서 실행할 수 있는 새로운 유형의 코드입니다. 네이티브에 가까운 성능으로 동작하며 컴팩트한 바이너리 포맷을 제공하는 저수준 어셈블리 언어로, C/C++, Rust 등과 같은 언어의 컴파일 타겟으로써 그런 언어로 작성된 프로그램을 웹에서 사용할 수 있게 해줍니다. 또한 JavaScript와 함께 실행되며 서로를 보완할 수 있도록 설계되었습니다.

Untitled

C/C++/RUST로 작성된 파일을 WASM이라는 파일로 컴파일하고 이 파일을 브라우저에서 받으면 실행할 수 있는 형식입니다.

2021년도 Wasm 1.0 버전은 JS보다 약 40% 더 빠르다고 확인하고 있습니다. (참고)

웹 어셈블리는 왜 빠를까?

참조

자바스크립트의 실행 구조

Untitled

오늘날 어플리케이션이 시작될 때 걸리는 시간들이다.

*위 과정이 순차적으로 진행되진 않음에 유의. 일부 해석,일부 컴파일,일부 실행… 이렇게 작은 단위로 진행된다.

웹 어셈블리의 실행 구조와 비교

Untitled

반면 웹 어셈블리의 동작을 JS와 비교해보면 다음과 같다.