본문 바로가기
프로그래밍/JavaScript

WebAssembly 간단하게 맛보기

by 꾸션 2023. 5. 18.

 

웹 개발의 세계에서 JavaScript는 오랫동안 독보적인 위치를 차지해왔습니다. 그러나 웹의 복잡성과 기능이 증가함에 따라, 새로운 도구와 기술들이 등장하고 있습니다. 그 중 하나가 바로 WebAssembly입니다. 이번 포스트에서는 WebAssembly를 간단하게 맛보는 시간을 가져보려고 합니다.

 

WebAssembly란?

WebAssembly(Wasm)는 웹에서 고성능을 필요로 하는 애플리케이션을 위해 만들어진 이진 코드 포맷입니다. C, C++, Rust 등의 언어로 작성된 프로그램을 웹에서 실행할 수 있게 해주는 역할을 합니다.

 

시작하기

가장 먼저, WebAssembly 바이너리를 생성해봅시다. 여기서는 C를 사용하겠습니다.

// main.c
#include <stdio.h>

int main() {
  printf("Hello, WebAssembly!\n");
  return 0;
}

이 C 코드를 WebAssembly로 컴파일하려면, Emscripten이라는 도구를 사용할 수 있습니다.

emcc main.c -s WASM=1 -o main.html

이 명령을 실행하면, main.c 파일을 컴파일하여 main.wasm 바이너리를 생성하고, 이를 로드할 수 있는 main.html과 main.js를 생성합니다.

 

WebAssembly 로드하기

이제 생성된 WebAssembly 바이너리를 웹에서 로드해봅시다. main.html 파일을 웹 브라우저에서 열면, 콘솔에 "Hello, WebAssembly!"라는 메시지가 출력되는 것을 볼 수 있습니다.

fetch('main.wasm').then(response =>
  response.arrayBuffer()
).then(bytes => WebAssembly.instantiate(bytes)).then(results => {
  instance = results.instance;
  console.log("Finished compiling! Run the 'instance' function");
});

이렇게 WebAssembly 모듈을 로드하고 인스턴스화하면, 이제 WebAssembly 함수를 호출하거나 JavaScript와 상호 작용할 수 있게 됩니다.

 

마치며

WebAssembly는 웹의 가능성을 크게 확장시키는 새로운 기술입니다. 이번 포스트를 통해 WebAssembly를 간단하게 맛보았지만, 이 외에도 많은 기능과 가능성을 가지고 있습니다. 앞으로 더욱 복잡하고 성능을 요구하는 웹 애플리케이션을 만들기 위해서는, WebAssembly에 대한 이해와 활용이 필수적입니다. 이를 통해 여러분의 웹 개발 능력을 한 단계 끌어올릴 수 있을 것입니다.

반응형

댓글