웹어셈블리란?

[원본 링크]

웹어셈블리는 말로만 들으면 어셈블리처럼 어려울 것 같은 무언가처럼 느껴지지만, 그렇게 어려운 건 아니다.

웹 클라이언트 측에서 무언가 동작을 하게 할 때는 다들 자바스크립트를 사용한다.
당연한 거다. 그게 표준이니까.

근데 알다시피 자바스크립트 자체는 성능이 그리 좋은 편이 아니다. 브라우저에 내장된 일종의 인터프리터로 돌아가기 때문이다.
인터프리터는 진짜 네이티브 프로그램에 비해서는 성능이 떨어질 수밖에 없다. 이건 본질적인 문제다.

이를 해결하기 위해 나온 것이 바로 웹어셈블리다.
웹어셈블리는 브라우저가 실행시킬 수 있는, 자바스크립트를 잇는 또다른 웹표준이다.
네이티브 프로그램처럼 동작하기 때문에 성능이 빠르고,
샌드박스 환경에서 실행되기 때문에 안전성도 갖추고 있다.

다만 자바스크립트처럼 DOM에 접근하는건 아직 안 된다. 계획에는 있다고 한다.
렌더링하기 전에 밑작업할 것들이 무거울 경우 사용하기에 좋을 것 같다.

그리고 웹어셈블리는 진짜 어셈블리를 직접 써야하는 게 아니다. 굳이 하려면 할 순 있다만.
그냥 C/C++이나 Rust를 사용하면 해당하는 툴을 통해 웹어셈블리 파일을 빌드할 수 있다.

그런거다.


참고
https://developer.mozilla.org/ko/docs/WebAssembly/Concepts