How WebAssembly is accelerating new web functionality
이 Chromium의 블로그 게시물에서는 WebAssembly가 어떻게 새로운 웹 기능 개발을 혁신시키고 있는지에 대한 깊은 이해를 제공합니다. WebAssembly를 사용하면 개발자들은 다른 언어에서 이식 가능한 바이트 코드를 컴파일하여 최적화된 성능을 제공하고 다른 플랫폼에서의 라이브러리와 기능을 웹으로 가져오는 것이 가능해집니다. 이는 빠른 반복 속도, 브라우저 간 즉각적인 지원, 그리고 더욱 향상된 보안을 포함한 중요한 이점을 제공합니다.
빠른 반복 속도는 새로운 웹 기능이 더 이상 까다로운 표준화 과정과 크로스 브라우저 구현을 거쳐야 하는 경우가 없기 때문입니다. Origin Trials와 같은 접근 방식은 더 많은 실험을 가능하게하지만 여전히 몇 주에서 몇 개월의 시간이 걸립니다. WebAssembly를 사용하면 반복 주기가 몇 년에서 몇 일이나 몇 시간으로 줄어들어 기능 개발 방식이 근본적으로 변경됩니다.
WebAssembly의 또 다른 이점은 브라우저 간 즉각적인 지원을 제공합니다. wasm이 브라우저에서 지원되기 때문에 이를 기반으로 구축된 기능은 즉각적으로 모든 브라우저에서 작동합니다. 상호 운용성과 기능의 크로스 브라우저 구현은 개발자들의 중요한 고통의 원인 중 하나이며, 이러한 기능을 이러한 하위 수준 프리미티브로 이동함으로써 이러한 우려 중 많은 부분이 제거됩니다.
WebAssembly는 높은 보안 샌드박스 위에 구축된 이러한 기능으로 인해 향상된 보안을 제공합니다. 예를 들어, Flash는 복잡한 플러그인을 충분히 견고하게 보호하는 것이 너무 어려워 웹에서 제거되었습니다. 하지만 지금은 WebAssembly에서 실행되어 거의 모든 보안 우려가 제거됩니다.
그러나 WebAssembly에는 단점과 한계도 있습니다. 하나의 한계는 대부분의 웹 개발에서 JavaScript를 대체하지 않고 기능을 확장한다는 것입니다. 브라우저에서의 WebAssembly는 여전히 JavaScript에 완전히 의존하며 다른 웹 기능에 액세스하려면 JavaScript를 통해 인터페이스해야 합니다.
다른 제한 사항은 페이지 번들 크기가 증가한다는 것입니다. 사용자 랜드에 더 많은 논리와 기능을 이동함으로써 페이지의 크기도 증가합니다. 이는 좋은 사용자 경험을 위한 가장 중요한 것이기 때문에 큰 문제입니다. 결과적으로, 개발자들은 이러한 기능으로 번들 크기를 급격하게 증가시키기 전에 신중히 생각해야 하며, 작은 전자 상거래 또는 블로그 사이트보다는 대규모 웹 앱에 더 적합할 수 있습니다.
WebAssembly 및 다른 프리미티브는 대부분 계산 메커니즘이며, 운영 체제 또는 장치 자체에 대한 루트 시스템 액세스를 제공하지 않습니다. 하드웨어 액세스 (USB 또는 Bluetooth), 스크린 또는 창 관리, 입력 컨트롤, 파일 시스템, 클립 보드 등과 같은 기능은 여전히 플랫폼 수준의 API를 통해 액세스해야 합니다.
결론적으로, WebAssembly는 브라우저 및 개발자들에게 강력한 새로운 접근 방식입니다. 이미 브라우저에서 새로운 기능을 활성화하고 있으며, 기능 개발 방식에 근본적인 변화를 나타냅니다. 새로운 패러다임과 마찬가지로, 장단점이 있지만, 전반적으로 WebAssembly를 사용하는 이점이 한계를 훨씬 능가합니다.