모질라, 웹어셈블리용 온라인IDE 시험판 공개

C, C++, 러스트 지원하는 '웹어셈블리스튜디오' 베타 버전

컴퓨팅입력 :2018/04/12 09:52

모질라가 웹어셈블리(WebAssembly) 프로그래밍을 위한 웹기반 통합개발환경(IDE)을 만들었다. 그 시험판을 웹어셈블리스튜디오라는 이름의 오픈소스 프로젝트로 공개했다.

미국 모질라 연구원 마이클 베베니타는 11일(현지시간) 웹 기술 블로그 '모질라핵스' 포스팅을 통해 웹어셈블리스튜디오 베타 버전을 소개했다. [☞원문보기]

베베니타는 웹어셈블리스튜디오를 "웹어셈블리 관련 학습과 강의를 돕는 온라인 IDE"이자 "웹어셈블리를 활용한 어떤 작업에든 편리하게 쓸 수 있는 맥가이버칼(a Swiss Army knife)"이라고 묘사했다.

모질라 온라인IDE 웹어셈블리스튜디오

모질라는 웹어셈블리스튜디오를 지난해 12월 하순부터 만들기 시작했다. 앞서 개발된 WasmExplorer와 WasmFiddle이라는 2가지 툴을 통합하는 작업이었다. 이후 여러 기여자의 도움을 받아 신기능을 갖췄다.

현재 공개된 웹어셈블리스튜디오 베타 버전을 공식 웹사이트에 접속해 사용해볼 수 있다. [☞바로가기]

웹어셈블리스튜디오를 사용해 뭘 할 수 있을까. main.c같은 C언어로 작성된 코드 파일을 out/main.wasm같은 웹어셈블리 바이너리파일로 변환한 다음 main.html같은 웹페이지를 불러오는 아이프레임(iframe) 샌드박스를 생성할 수 있다. 이 웹페이지는 main.js같은 자바스크립트 코드 파일을 불러올 수 있고 이 코드 파일은 최종적으로 'Hello World' 출력같은 코드를 담은 웹어셈블리 모듈을 불러내 실행할 수 있다.

웹어셈블리스튜디오는 C, C++, 러스트(Rust) 언어를 기본 지원한다. 모질라는 현재 지원 언어 컴파일서비스가 대부분 서버측에서 구동되나 추후 클라이언트에서 더 많이 처리되게 만들고자한다.

웹어셈블리스튜디오는 또 .wasm 확장자를 쓰는 바이너리파일과 .wat 확장자를 쓰는 텍스트 파일을 모두 편집할 수 있다. 온라인IDE에서 바이너리파일을 열어 텍스트 파일로, 또는 그 역으로 저장할 수 있다.

웹어셈블리 온라인IDE에서 마우스 우클릭 컨텍스트메뉴로 실행할 수 있는 바이너리탐색 기능 화면

웹어셈블리스튜디오 기능 가운데 눈길을 끄는 부분은 마우스 오른쪽 버튼을 눌러서 불러낼 수 있는 컨텍스트메뉴다. 웹어셈블리 바이너리파일 위에서 컨텍스트메뉴를 불러내면 편집, 삭제, 내려받기, 검증, 최적화, 파일을 웹어셈블리 텍스트 포맷으로 변환하는 '분해(disassemble)', 바이너리 탐색 등 지원되는 명령을 보여 준다. 파이어폭스 브라우저의 웹어셈블리 엔진을 사용해 변환된 새 파일을 만드는 '파이어폭스 x86'같은 명령어도 표시된다.

베베니타는 웹어셈블리스튜디오 오픈소스 프로젝트 개선 방향을 몇 가지 제시했다.

웹어셈블리스튜디오 개발 프로젝트는 C, C++, 러스트 언어 지원 수준을 개선하는 방향으로 진행된다. 현재 LLVM 백엔드를 사용해 C 및 C++ 애플리케이션을 지원하고 있는데 엠스크립튼(Emscripten) 지원을 더해 SDL 및 오픈GL(OpenGL)같은 API를 쓸 수 있게 된다는 설명이다.

웹어셈블리스튜디오에 신기능과 추가 툴을 통합하는 작업도 지속된다. 웹어셈블리스튜디오로 만든 프로젝트를 로컬 영역에 내려받아 널리 쓰이는 툴을 활용해 빌드할 수 있도록 할 계획이다. UX를 개선하고 오류를 줄이고 전반적인 성능도 최적화한다.

베베니타는 웹어셈블리스튜디오 프로젝트에 관심이 있는 이들로부터 이슈 해결 및 기능 추가 요청 등 피드백을 받고 있다고 밝혔다. 저장소는 소스코드 공유 및 개발 협업 사이트 깃허브(GitHub)에 있다.

관련기사

웹어셈블리를 활용한 개발 시나리오를 고려한 IDE 개발 사례는 웹어셈블리스튜디오 이전에도 있었다. 삼성전자는 지난해 웹어셈블리 코딩, 컴파일, 패키징 서비스를 지원하는 웹서버기반 IDE를 '웹어셈블리 트랜슬레이션 툴킷(WATT)'이라는 이름으로 선보였다. [☞관련기사]

웹어셈블리는 브라우저에서 네이티브 애플리케이션처럼 고성능으로 실행되는 웹 애플리케이션을 위한 런타임과 그 코드를 담는 바이너리 포맷 표준을 가리킨다. 엣지, 사파리, 크롬, 파이어폭스 브라우저를 만드는 마이크로소프트(MS), 애플, 구글, 모질라가 함께 표준화하고 있다. [☞관련기사]