WebAssembly(Wasm) 10주년, 웹의 미래를 엿보다!

by DD
4개월 전
조회수 16

2015년 asm.js를 기반으로 시작된 WebAssembly(Wasm)는 웹 표준으로 자리매김하며, 다양한 분야에서 활용됨

보안(Security), 성능(Performance), 이식성(Portability)을 목표로 설계되었으며, 웹 생태계의 혁신을 주도함

WASI(WebAssembly System Interface)Component Model을 통해 웹 브라우저를 넘어 서버, 엣지, 임베디드 시스템으로 확장됨

AI, 임베디드 시스템 등 새로운 분야에서 Wasm의 잠재력(Potential)이 주목받으며, 향후 10년간의 발전을 기대함

WebAssembly(Wasm)의 탄생 배경: asm.js

2013년, Mozilla 엔지니어들은 asm.js를 통해 기존 JavaScript 엔진의 성능을 향상시키고자 했다. 이는 JavaScript 코드의 부분 집합을 정의하여, 컴파일러가 정적 타입 정보를 활용하도록 했다. Dan Gohman은 asm.js의 핵심을 신뢰할 수 있는 콜 스택(Trusted Call Stack)으로 설명하며, 컴파일된 코드와 JavaScript가 동일한 스택을 공유하여 상호 호출이 가능하도록 설계했다고 밝혔다. 이러한 설계는 WebAssembly의 핵심적인 특징으로 이어졌다.

WebAssembly(Wasm)의 기술적 도전과 표준화 과정

WebAssembly는 Google의 Native Client(NaCl)와 Portable Native Client(PNaCl)의 한계를 극복하기 위해 등장했다. PNaCl은 보안을 위해 별도의 프로세스에서 실행되었지만, JavaScript와의 통신에 어려움이 있었다. WebAssembly는 표준화(Standardization)를 위해 주요 브라우저 벤더들의 협력을 이끌어냈으며, 2015년 6월 17일, 4개의 주요 브라우저(Chrome, Firefox, Safari, Edge)가 동시에 WebAssembly를 지원하는 블로그를 게시했다. 이는 이례적인 협업의 결과였다.

WASI(WebAssembly System Interface)와 Component Model의 등장

WebAssembly가 웹 브라우저를 넘어 서버, 엣지, 임베디드 시스템으로 확장되면서, WASI(WebAssembly System Interface)Component Model이 개발되었다. WASI는 WebAssembly 모듈이 파일, 소켓, 프로세스에 접근할 수 있도록 하는 표준 인터페이스를 제공하며, Component Model은 다양한 언어로 작성된 Wasm 바이너리 간의 상호 운용성을 가능하게 한다. 이는 WebAssembly의 활용 범위를 획기적으로 넓혔다.

WebAssembly(Wasm)의 미래: AI와 임베디드 시스템

WebAssembly는 AI, 임베디드 시스템 분야에서 새로운 가능성을 열고 있다. 특히, AI 모델의 안전한 실행 환경(Secure Execution Environment)을 제공하는 데 기여할 수 있다. Titzer는 WebAssembly가 산업 제어 시스템과 사이버-물리 시스템에 통합될 수 있다고 언급하며, AI가 생성한 코드의 안전성(Safety)을 확보하는 데 중요한 역할을 할 수 있다고 강조했다. 또한, Gohman은 WebAssembly가 클라우드 네이티브 환경을 구축하는 데 중요한 역할을 할 것이라고 전망했다.

10 Years of Wasm: A Retrospective

댓글 0

첫 번째 댓글을 남겨보세요!