Community

웹어셈블리(WebAssembly)

웹어셈블리는 기존 JavaScript의 느린 속도를 보완하고 대체하기 위해 브라우저에서 실행되는 저수준의 바이트코드로 구성된 어셈블리어입니다. 기존의 브라우저는 HTML, CSS, JavaScript만 실행할 수 있었지만 이제는 웹어셈블리어의 확장자인 .wasm 형식도 지원합니다. 웹어셈블리는 C, C++, Rust, Go 등 다양한 언어로 작성된 코드를 컴파일하여 생성할 수 있습니다. 웹어셈블리는 왜 빠를까요? 1. 이미 컴파일이 완료된 저수준의 바이트코드이기 때문에 자바스크립트처럼 별도의 파싱 과정(JavaScript → 추상구문트리 → 바이트코드 변환)이 필요하지 않아서 바로 실행됩니다. 2. LLVM 컴파일러를 사용하여 이미 최적화된 코드이므로 브라우저의 빠른 실행을 도와주는 Turbofan이 항상 작동합니다. 3. JIT 컴파일러를 사용하는 과정에서 여러 가지 이유로 재 최적화를 하는 JavaScript와는 달리, 재 최적화를 거치는 과정이 없습니다. 그렇다면 웹어셈블리가 자바스크립트를 대체하게 될까요? 웹어셈블리는 애초에 자바스크립트를 대체하려고 나온 것이 아닙니다. 자바스크립트의 부족한 부분을 보완하기 위해서 나온 개념입니다. 가령, 사용자 인터랙션 같은 경우는 자바스크립트가 더 뛰어납니다. 대신 이미지 프로세싱, 빠른 계산 속도가 필요한 비디오 및 오디오 처리 같은 고성능이 필요한 웹 애플리케이션을 개발하는 데는 웹어셈블리가 더 빠릅니다. 즉, 비즈니스의 특성상 연산이 많이 필요하고 성능이 중요한 부분이 있다면 더 나은 UX를 위해서 해당 부분을 웹어셈블리로 도입할 수 있습니다.

알림

알림이 없습니다