개발여행

WebAssembly 알아보기 본문

CS

WebAssembly 알아보기

jbilee 2024. 7. 12. 23:56

WebAssembly는 코드지만, 우리 개발자가 직접 읽고 쓰는 프로그래밍 언어는 아니다.

 

WebAssembly는 자바스크립트 외의 언어로 작성한 코드가 웹 브라우저에서 실행될 수 있도록 컴파일링된 특수한 코드다. 사람보다는 컴퓨터가 이해할 수 있는 바이너리 형태의 코드라서 우리가 직접 코드를 짜는 것은 아니다. C++, Rust, Go 등 웹개발을 위한 언어가 아닌 것들로 짠 코드도 웹브라우저가 이해하고 실행시킬 수 있도록 만들어진게 WebAssembly다.

Image by Brita Seifert from Pixabay

 

기계 언어에 더 가까워서 자바스크립트보다 실행 속도도 빠르다고 한다. 브라우저가 자바스크립트를 돌리려면 먼저 자바스크립트 코드를 파싱을 하고, 이후 바이너리로 컴파일한 다음에야 브라우저가 읽게 되는데, WebAssembly는 애초에 바이너리 형태다 보니 브라우저 엔진이 바로 실행할 수 있다.

 

좋은 예시로, C#을 사용하는 Unity 엔진으로 만든 게임을 웹브라우저에서 플레이할 수 있는 이유는 WebAssembly 덕분이다. AutoCAD나 포토샵 같은 프로그램도 WebAssembly를 통해 브라우저에서 바로 실행할 수 있게 만들 수 있다.

 

업계에서는 처음에 WebAssembly의 가능성을 높게 봤던 것 같지만, 결국엔 이미지 프로세싱 같은 자바스크립트가 빠르게 처리하기 어려운 작업에만 실질적으로 유용하다고 하는 모양이다. 일반적인 연산 작업을 비교했을 때 퍼포먼스적으로 자바스크립트가 크게 뒤쳐지지는 않아서 굳이 웹개발 베이스가 아닌 다른 언어로 코드를 짜고 WebAssembly로 변환시킬 필요는 없다는 것이다.