웹어셈블리란?
20년 넘게 JavaScript는 브라우저에서 실행할 수 있는 유일한 프로그래밍 언어였습니다. Python, C++ 및 Go와 같은 다른 언어는 주로 웹 애플리케이션 및 서비스의 서버 측을 구축하기 위한 것이었습니다.
JavaScript는 꽤 잘 수행되었지만 다른 많은 프로그래밍 언어가 더 빠릅니다. 웹 앱이 브라우저에서 직접 더 성능이 뛰어난 다른 프로그래밍 언어를 실행하여 활용할 수 있는 많은 이점이 있습니다.
WebAssembly는 개방형 웹 플랫폼의 일부인 효율적이고 개방적이며 안전한 옵션을 제공합니다. 이를 사용하여 브라우저, 서버 및 기타 환경에서 실행되는 애플리케이션을 구축할 수 있습니다.
웹어셈블리 소개
WebAssembly(WASM)는 효율적이고 낮은 수준의 이식 가능한 W3C 표준 언어입니다. 프로그램이 웹에서 플랫폼과 상호 작용할 수 있도록 코드 형식과 인터페이스를 정의합니다.
대부분의 프로그래밍 언어를 WebAssembly의 이진 코드 형식으로 컴파일할 수 있습니다. 브라우저는 일반 JavaScript와 마찬가지로 결과 WASM 코드를 해석하고 실행할 수 있습니다. 더 높은 앱 성능과 둘 사이의 상호 운용성을 위해 JavaScript 코드와 함께 WebAssembly를 실행할 수도 있습니다.
WebAssembly는 2019년에 W3C 표준이 되었으며 많은 프로그래밍 언어를 지원합니다. Made with WebAssembly 에 따르면 WebAssembly를 사용하여 사용자에게 빠르고 안전한 소프트웨어를 제공하는 유명한 프로젝트가 이미 많이 있습니다.
서버 측 특정 언어를 포함하여 많은 프로그래밍 언어가 WebAssembly를 지원합니다. 여기에는 Rust, Go, Python, C++, TypeScript, Java, PHP 및 Ruby가 포함됩니다. WebAssembly 지원 언어 및 함께 사용할 수 있는 패키지에 대해 알아보려면 awesome-wasm-langs 리소스 를 확인 하세요.
다음 은 최대 2개의 정수를 반환하는 Tutorials Point의 WebAssembly 프로그램 예제입니다.
WebAssembly 구문은 JavaScript에 비해 상대적으로 장황하지만 문제가 되지 않습니다. WebAssembly는 선호하는 언어로 작성하는 프로그램의 컴파일 대상이 되기 때문에 구문을 배울 필요가 없습니다.
웹어셈블리 작동 방식
WASM은 다른 프로그래밍 언어로 변환할 수 있는 컴파일 대상으로 존재합니다. 선호하는 프로그래밍 언어로 작성하고 소스 코드를 클라이언트에서 실행되는 WASM 바이트코드로 컴파일할 수 있습니다. 기본 기계 코드로 변환하면 일반적으로 JavaScript보다 빠른 고속으로 실행할 수 있습니다.
WASM의 중요한 기능 중 하나는 JavaScript 상호 운용성입니다. WASM 모듈을 웹 애플리케이션으로 가져오고 JavaScript 코드에서 사용할 WASM 기능을 노출할 수 있습니다. JavaScript 프레임워크는 고성능을 위해 WASM을 활용할 수 있습니다.
WASM은 JavaScript와 유사한 샌드박스 실행 모델을 사용합니다. WASM 은 프로그램의 요구 사항에 따라 리소스 및 기타 시스템 서비스에 대한 액세스를 제공 하는 WebAssembly 시스템 인터페이스 와 같은 ABI(Application Binary Interface)를 사용하여 호스트 시스템과 상호 작용 합니다.
Chrome, Microsoft Edge, Mozilla Firefox, Opera 및 Safari를 비롯한 많은 최신 브라우저가 WASM을 지원합니다. Go 및 Rust와 같은 언어는 즉시 WASM을 지원합니다.
웹에 WebAssembly가 필요한 이유
JavaScript는 의도적으로 기능이 제한되어 있습니다. 웹용 스크립팅 언어로 시작된 이래로 가장 빠르거나 성능이 뛰어난 언어는 아닙니다. JavaScript가 다양한 속도로 실행되는 많은 런타임이 있지만 WebAssembly가 게임, 비디오 및 음악과 같은 사용 사례를 위해 웹에 가져올 수 있는 더 빠르고 성능이 뛰어난 언어가 있습니다.
WebAssembly는 또한 웹에서 실행되지 않는 언어에 더 많은 이식성과 유연성을 제공합니다. 웹(가장 인기 있는 오픈 소스 플랫폼)에 더 많은 언어를 도입하면 전반적인 경험이 향상될 것입니다.
WebAssembly 채택이 빠르게 진행되고 있습니다.
많은 회사와 개발자가 WebAssembly로 애플리케이션을 구축하고 있습니다. Google, Dropbox 및 Cloudflare는 일부 애플리케이션에서 WebAssembly를 적극적으로 사용합니다.
WebAssembly는 Python, C++ 및 Rust 개발자들 사이에서 인기가 있습니다. Python 개발자는 일반적으로 Percy, Yew, Sycamore, MoonZoon 및 Seed 프레임워크와 함께 Pyoidide 및 PyScript, C++ 개발자 및 Emscripten, Rust 개발자를 사용합니다.
답글 남기기