WebAssembly에 주목해야 할 이유
(harshal.sheth.io)- WebAssembly(WASM)소개부터, 오늘날 어디에 사용되고 있으며, 앞으로 사용될 분야에 대한 예측
# WASM의 특징
- 포터블: 표준화된 바이트코드로 브라우저/서버 어디서든 실행
- 유니버설: C,Rust,Go,Python,Ruby등 다양한 언어들이 Wasm으로 컴파일
- 네이티브 수준의 성능: 평균적으로 네이티브보다 1.45~1.55배 느리지만 JavaScript보다는 항상 빠름
- 빠른 시작 시간: 도커 컨테이너보다 10~100x 빠르고, 브라우저에서도 Javascript 파싱/인터프리팅 보다 빠름
- 안전: 웹을 염두에 두고 개발되어 메모리 샌드박싱 및 기능 제한 등을 통해서 안전
# WASM이 유용한 분야
- 자바스크립트 속도 개선
- 프로그래밍 언어간 상호 호환성 제공
- 다언어 플러그인 시스템을 위한 런타임
- 임베디드 샌드박싱 엔진으로 다양한 써드파티 라이브러리를 안전하게 가져다 사용
- Containerization 의 미래 : Docker보다 빠르고, 작은 풋프린트 및 안전함
- FaaS/Serverless 플랫폼
- 블록체인 : 스마트 컨트랙트 실행을 위한 고성능 런타임으로 활용 가능
# 예측과 기회
- 새로운 어플리케이션 아키텍처
ㅤ→ 마이크로서비스를 더 작은 컴포넌트로 세분화 가능
- Brownfield Deployment
ㅤ→ 오케스트레이션 레이어에서 Docker 와 Wasm 콘테이너의 통합
- 표준화된 Serverless/Edge Framework
ㅤ→ 현재는 Fastly,Lambda,Fission 등이 자체적으로 플랫폼을 구축하지만, 표준화 될 가능성도 있음
ㅤ→ "Terraform of Serverless"
- Package Management
ㅤ→ 모든 언어들은 패키지 에코시스템을 가지고 있음
ㅤ→ WASM에는 패키지 매니저가 필요함. WAPM이 있긴 하지만 거의 휴면 상태
# 결론
- WebAssembly가 그렇게 좋은데 왜 더 널리 사용되지 않을까 ?
ㅤ→ 마케팅이 좋지 않음. Web 이나 Assembly에 국한되지 않기 때문에 이름부터 잘못된 것
ㅤ→ 대부분 웹 개발자를 대상으로 마케팅 했지만, 실제 포텐셜은 브라우저를 넘어섬
ㅤ→ WebAssembly 표준이 아직 없음
ㅤ→ 언어간 상호 호환성은 아직 형편없음
ㅤ→ 개발자 경험이 많이 부족함
- 하지만 많은 부분이 개선 중이고 1~2년 이내에 수용 가능한 상태에 도달할 것
- WebAssembly 관련 활동 및 에코시스템, 커뮤니티 폭증기에 접어 들었음
긱뉴스에서 WebAssembly/WASM 으로 검색해봐도 엄청 많은 수의 글들을 보실 수 있습니다.
주요 기사들만 나열해 봅니다.
- WebAssembly가 W3C 권고안으로 공식 발표 https://news.hada.io/topic?id=1091
- 웹어셈블리, 브라우저 밖으로 확장 가능할까? 바이트코드 동맹 뜬다 https://news.hada.io/topic?id=901
- MS/Google/Arm등이 Bytecode 연합에 조인 https://news.hada.io/topic?id=4172
ㅤ→ WebAssembly가 브라우저를 넘어서 사용되는 것을 목표로 만든 비영리 조직
- 2020년과 이후 JavaScript의 동향 - WebAssembly https://news.hada.io/topic?id=2778
- WebAssembly는 어떻게 JavaScript를 빠르게 실행할 수 있는가 https://news.hada.io/topic?id=5167
- 아마존 프라임 비디오, WebAssembly 사용하여 8000개의 디바이스 타입 지원 https://news.hada.io/topic?id=5858
- WebAssembly가 네트웍 프록시에 새로운 확장성을 가져오다 https://news.hada.io/topic?id=1722
- Wasmer 1.0 릴리즈 https://news.hada.io/topic?id=3540
- WebVM, 브라우저에서 실행하는 서버리스 x86 가상머신 https://news.hada.io/topic?id=5893