WebAssembly(Wasm) Component Model, 웹 개발의 판도를 바꿀까?

by DD
2개월 전
조회수 30

WebAssembly(Wasm)은 C/C++ 등 저수준 언어의 웹 지원을 가능하게 했지만, JavaScript와의 통합 부족으로 인해 2등 시민 취급을 받아왔음

Web API 접근성 문제복잡한 빌드 과정은 Wasm 채택의 주요 걸림돌로 작용함

WebAssembly Component Model은 Wasm과 웹 플랫폼 간의 직접적인 통합을 목표로, 개발자 경험을 개선하고자 함

45% DOM 조작 시간 단축을 통해 성능 향상을 이끌어낼 수 있다는 긍정적 평가와 함께, 도구 복잡성 증가에 대한 우려도 제기됨

WebAssembly(Wasm)의 2등 시민 문제

게시물은 WebAssembly(Wasm)이 웹에서 JavaScript와 같은 일급 시민 대우를 받지 못하는 근본적인 문제를 지적한다. 특히, 코드 로딩(Loading of code)Web API 사용(Using Web APIs)에 있어 JavaScript에 비해 복잡한 과정을 거쳐야 한다고 설명한다. 이러한 차이점은 개발자 경험을 저해하고, Wasm의 광범위한 채택을 가로막는 주요 원인으로 작용한다.

WebAssembly Component Model의 등장

WebAssembly Component Model은 이러한 문제를 해결하기 위한 대안으로 제시된다. 이 모델은 표준화된 실행 파일(Standardized self-contained executable artifact)을 통해 여러 언어와 도구 체인에서 지원되며, Wasm 코드의 로딩 및 연결, Web API 사용을 처리한다. 이를 통해 개발자는 JavaScript 없이도 Wasm을 활용할 수 있으며, 컴파일러 수준에서 웹 플랫폼 통합을 지원할 수 있다.

성능 향상 및 개발 편의성 개선

게시물은 WebAssembly Component Model을 통해 DOM 조작 시간(DOM operation time)을 45%까지 줄일 수 있음을 강조한다. 이는 JavaScript glue code를 제거하고, Web API에 직접 접근할 수 있게 됨으로써 얻을 수 있는 주요 이점이다. 또한, 개발자는 특정 언어에 종속되지 않고, 다양한 언어 지원(Multi-language Support)을 통해 웹 개발을 수행할 수 있다.

도구 복잡성 및 생태계 성숙에 대한 우려

커뮤니티에서는 WebAssembly Component Model의 도입이 새로운 복잡성을 야기할 수 있다는 우려를 표명한다. 특히, 도구 체인(Toolchain)의 성숙도 부족과 WebAssembly Component Model의 학습 곡선(Learning Curve)에 대한 부담을 지적한다. 또한, WebAssembly Component Model이 기존 Web Component와 유사한 이름으로 인해 혼란을 야기할 수 있다는 의견도 제기된다.

WebAssembly Component Model의 미래

WebAssembly Component Model은 웹 개발의 새로운 가능성을 제시하지만, 해결해야 할 과제도 남아있다. GC 통합(GC Integration), 동시성 문제(Concurrency), 그리고 보안 문제(Security) 등 다양한 측면에서 추가적인 연구와 개발이 필요하다. 그럼에도 불구하고, WebAssembly Component Model은 WebAssembly를 웹 생태계의 핵심 기술로 자리매김하는 데 기여할 수 있을 것으로 기대된다.

Making WebAssembly a first-class language on the Web