2017.09.12

'타입스크립트를 웹어셈블리로'··· 어셈블리스크립트 베타 버전 공개

Paul Krill | ARN
'어셈블리스크립트(AssemblyScript)'라고 불리는 프로젝트는 웹어셈블리(WebAssembly)와 타입스크립트(TypeScript) 간의 가교를 제공한다. 전자는 웹 애플리케이션을 빠르게 실행하기 위해 개발한 포터블 바이너리 코드 포맷이고, 후자는 마이크로소프트의 전형적인 자바스크립트 패키지다.

어셈블리스크립트는 타입스크립트의 일부다. 이를 이용하면 타입스크립트와 표준 자바스크립트 API에 익숙한 개발자가 웹어셈블리로 컴파일할 수 있다. 이 프로젝트는 현재 개발 베타 단계다. 핵심 개발자인 다니엘 월츠는 "어셈블리스크립트의 목표는 개발 과정을 더 단순하게 하는 것이다. 예를 들면 웹어셈블리로 컴파일 하기 위해 복잡한 여러 툴을 설치하고 설정하는 대신 npm을 설치하는 것으로 대체할 수 있다"라고 말했다.

어셈블리스크립트는 타입스크립트 컴파일러 API를, 웹어셈블리 바이너리를 만들 수 있는 블리나리연(BInaryen) 컴파일러 백엔드로 넘기는 역할을 한다. 성능을 희생해 타입스크립트를 재적용하는 대신 특정 다이내믹 구성체의 지원 없이 이와 비슷한 기능을 지원하는 것이 특징이다. 어셈블리스크립트는 특별한 요건을 가지고 있다. 예를 들어 타입은 반드시 주석을 달아야 한다. 또한 선택할 수 있는 함수 파라미터는 이니설라이저 표현식을 요구한다. 유니온 타입은 지원하지 않는다.

프로젝트 문서에 따르면, 어셈블리스크립트는 월츠와 일부 컨트리뷰터가 참여해 개발하고 있다. 앞으로 버그를 잡고 기능을 개선할 예정이다. 단, 가비지 컬렉션에 웹어셈블리 기능을 추가하고 예외 처리 기능을 지원하는 것은 시간이 좀 걸릴 것으로 보인다. 월츠는 "앞으로 더 많은 타입스크립트를 지원할 것이다. 궁극적인 목표는 어셈블리스크립트 컴파일러만으로 웹어셈블리로 컴파일하는 것이다"라고 말했다. ciokr@idg.co.kr

2017.09.12

'타입스크립트를 웹어셈블리로'··· 어셈블리스크립트 베타 버전 공개

Paul Krill | ARN
'어셈블리스크립트(AssemblyScript)'라고 불리는 프로젝트는 웹어셈블리(WebAssembly)와 타입스크립트(TypeScript) 간의 가교를 제공한다. 전자는 웹 애플리케이션을 빠르게 실행하기 위해 개발한 포터블 바이너리 코드 포맷이고, 후자는 마이크로소프트의 전형적인 자바스크립트 패키지다.

어셈블리스크립트는 타입스크립트의 일부다. 이를 이용하면 타입스크립트와 표준 자바스크립트 API에 익숙한 개발자가 웹어셈블리로 컴파일할 수 있다. 이 프로젝트는 현재 개발 베타 단계다. 핵심 개발자인 다니엘 월츠는 "어셈블리스크립트의 목표는 개발 과정을 더 단순하게 하는 것이다. 예를 들면 웹어셈블리로 컴파일 하기 위해 복잡한 여러 툴을 설치하고 설정하는 대신 npm을 설치하는 것으로 대체할 수 있다"라고 말했다.

어셈블리스크립트는 타입스크립트 컴파일러 API를, 웹어셈블리 바이너리를 만들 수 있는 블리나리연(BInaryen) 컴파일러 백엔드로 넘기는 역할을 한다. 성능을 희생해 타입스크립트를 재적용하는 대신 특정 다이내믹 구성체의 지원 없이 이와 비슷한 기능을 지원하는 것이 특징이다. 어셈블리스크립트는 특별한 요건을 가지고 있다. 예를 들어 타입은 반드시 주석을 달아야 한다. 또한 선택할 수 있는 함수 파라미터는 이니설라이저 표현식을 요구한다. 유니온 타입은 지원하지 않는다.

프로젝트 문서에 따르면, 어셈블리스크립트는 월츠와 일부 컨트리뷰터가 참여해 개발하고 있다. 앞으로 버그를 잡고 기능을 개선할 예정이다. 단, 가비지 컬렉션에 웹어셈블리 기능을 추가하고 예외 처리 기능을 지원하는 것은 시간이 좀 걸릴 것으로 보인다. 월츠는 "앞으로 더 많은 타입스크립트를 지원할 것이다. 궁극적인 목표는 어셈블리스크립트 컴파일러만으로 웹어셈블리로 컴파일하는 것이다"라고 말했다. ciokr@idg.co.kr

X