Offcanvas

개발자

"웹어셈블리 앱을 브라우저 밖으로"··· 모질라, 'WASI' 개발 프로젝트 공개

2019.03.29 Serdar Yegulalp  |  InfoWorld
모질라(Mozilla)가 새로운 표준화 프로젝트를 발표했다. 웹어셈블리 애플리케이션이 운영체제와 지속해서 접속하는 기능을 지원한다는 구상이다. 

이 프로젝트의 이름은 WASI(WebAssembly System Interface)다. 파일 읽기와 쓰기, 네트워크 I/O 같은 작업을 수행하는 추상화 셋을 포함해 웹어셈블리 애플리케이션을 제공하는 것이 목적이다. 각 웹어셈블리 호스트가 해당 웹어셈블리 애플리케이션을 실행하는 플랫폼에 따라 WASI를 실행하는 방식이다.

모질라에 따르면, WASI의 가장 큰 특징은 플랫폼 독립적이라는 점이다. 예를 들어 C 같은 언어는 파일 시스템과 메모리와 접속하는 표준 라이브러리를 제공한다. WASI 역시 비슷한 방식으로 파일 또는 네트워크 소켓을 위한 크로스 플랫폼 추상화 표준 라이브러리 역할을 하게 된다. WASI의 또 다른 특징은 이러한 작업을 샌드박스 형태로 실행한다는 점이다. 예를 들어 파일 액세스 작업이라면, 애플리케이션이 명백하게 읽기, 쓰기 권한을 가진 디렉터리에 대해서만 파일을 여는 WASI 호출이 작동한다. 이러한 권한을 모듈 단위로 제한하는 것도 가능하다.

WASI를 사용하려면 기존 웹어셈블리를 재컴파일해야 한다. 다행히 웹어셈블리 역시 아직 개발 초기 단계여서 이러한 변화가 큰 혼란으로 이어지지는 않을 것으로 보인다. 러스트(Rust)와 C/C++ 등 현재 웹어셈블리 앱 개발에 가장 널리 사용하는 툴 2가지는 이미 WASI를 지원한다. LLVM를 이용해 WASI를 지원하는 웹어셈블리 코드를 생성하는 방식이다.

현재 상태에서 WASI 앱을 실행하려면 브라우저가 웹어셈블리를 지원하는 것 이상이 필요하다. 한 가지 방법은 브라우저 기반 폴리필(polyfill)을 이용하는 것이다. 자바스크립트의 실험적 기능에서 사용하는 것과 같은 방식이다. 두 번째 방법은 브라우저를 사용하지 않는 단독형 웹어셈블리 런타임인 wasmtime을 쓰는 것이다. 또 다른 단독형 런타임인 루싯(Lucet)을 사용하는 방법도 있다. 루싯은 모질라의 크레인리프트(Cranelift) 코드 생성 시스템으로 개발됐다. 모질라는 머지않아 더 많은 브라우저가 WASI를 네이티브로 지원할 것으로 기대하고 있다. ciokr@idg.co.kr
CIO Korea 뉴스레터 및 IT 트랜드 보고서 무료 구독하기
추천 테크라이브러리

회사명:한국IDG 제호: CIO Korea 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아01641 등록발행일자 : 2011년 05월 27일

발행인 : 박형미 편집인 : 천신응 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.