개발자 세계에서 각자 거대한 지지기반을 갖고 있는 구글과 마이크로소프트(MS)가 지난해 시작한 차세대 웹 애플리케이션 개발 기술 영역에서의 협력 성과를 공개해 주목된다.
양사 협력은 구글이 미는 애플리케이션 프레임워크인 '앵귤러JS(AngularJS)'가 MS 프로그래밍 언어 및 개발도구와 맞물려 돌아가도록 하는데 초점이 맞춰졌다.
MS는 이달초 자사 '타입스크립트(TypeScript)' 언어를 기반으로 '앵귤러JS(AngularJS)' 프레임워크 차기 버전이 개발된다고 밝혔다. (☞링크) 이어 MS 간판 개발도구 '비주얼스튜디오'에서 타입스크립트1.5 시험판으로 앵귤러JS 애플리케이션을 만드는 실제 과정을 간단히 소개했다. (☞링크)
타입스크립트는 MS판 자바스크립트 언어 확장판((superset) 이다. 기존 앵귤러JS 프레임워크는 대부분 일반 자바스크립트 언어로 개발돼 왔고, 확장된 기능을 필요로 할 경우 구글 '앳스크립트(AtScript)'라는 프로그래밍 언어가 적용됐다. 구글은 지난해 10월 앳스크립트를 공식 발표했음을 감안하면 그리 오래지 않은 시점에 '앵귤러JS와의 연계' 역할을 타입스크립트에 넘긴 것이다.
이를 두고 IT미디어 테크크런치는 최근 기사에서 앳스크립트는 타입스크립트의 취지에 동조해 은퇴하는 것으로 보인다고 평했다. (☞링크)
공식사이트 설명에 따르면 앵귤러JS는 2010년부터 구글 주도로 개발돼 1.4.0 베타5를 최신판으로 배포 중이며 코드는 MIT라이선스 기반 오픈소스로, 관련 문서는 크리에이티브커먼즈 저작자표시(CC-BY) 3.0 방식으로 제공된다. (☞링크)
구글은 자바스크립트 이외의 웹 기술을 응용해 '앵귤러'라는 이름 아래 여러 자매 프로젝트를 두고 있다. 원조격인 앵귤러JS의 차기버전 성격인 '앵귤러2(Angular 2)'는 현재 '알파 프리뷰' 버전 단계다. 이를 맡고 있는 구글 개발팀은 MS 개발자들과 함께 해당 기술이 온전한 형태로 배포될 때까지 계속 협력할 예정이다.
■타입스크립트, 구글 프레임워크 개발언어 되다
타입스크립트는 지난 2012년 소개됐다. 최근 몇년새 자바스크립트가 웹 애플리케이션 개발 기술의 주류로 자리잡았지만, 현업에선 대규모 프로젝트에 알맞은 기능을 더 필요로 한다. MS가 타입스크립트를 만들게 된 배경이다. C#과 자바 프로그래밍에 익숙한 개발자를 겨냥했다는 게 MS 측 설명이다. (☞관련기사)
구글은 자바스크립트 확장판 '앳스크립트(Atscript)'를 지난해 10월 소개했다. 타입스크립트와 매우 비슷한 콘셉트로 등장했다. 구글 쪽 개발자들이 타입스크립트에 우호적으로 대응한 것은 뜻밖의 사건으로 비친다.
앳스크립트는 기존 자바스크립트에 선택적 타입, 메타데이터, 인트로스펙션, 3가지 특성을 더해 만들어졌고, 규격상 MS 타입스크립트의 기능도 모두 포괄했다. 그런만큼 구글은 타입스크립트가 아니라 앳스크립트를 밀어줄 듯 했고, 이런 앳스크립트의 활용 가치는 자바스크립트 프레임워크 앵귤러JS의 활용 시나리오에서도 발휘될 것처럼 보였다.
앵귤러JS는 자바스크립트로 만드는 웹 애플리케이션 개발 작업을 간소화해 주는 프레임워크다. 프로젝트가 자바스크립트 이외의 언어와 개발 환경을 지원한 응용 기술로 확대되면서 자바스크립트를 뜻하는 'JS'를 뗀 이름으로 불리고 있다.
구글 개발자 미스코 헤브리(Miško Hevery)가 지난 2009년 진행된 '구글 피드백' 프로젝트에서 구글의 프론트엔드 코드 1만7천줄을 3주만에 1천500줄로 재개발하는 과정에서 출발했다. 이후 양방향 데이터 바인딩, 모델뷰컨트롤러(MVC)구조, 단일페이지웹앱(SPA)용 라우터, 비동기 프로그래밍과 테스팅을 지원하는 등 대규모 프로젝트 개발 환경에 맞춰 진화했다.
실제로 헤브리는 지난해 '유럽 앵귤러 컨퍼런스(ng-europe 2014)'에서, 앳스크립트를 앵귤러 2.0(앵귤러JS 차기버전) 안에서 자바스크립트 어노테이션과 타입(Type) 확장을 쓸 때 권장할만한 기술로 묘사했다. 구글이 앵귤러JS와 앳스크립트 조합을 밀어줄 것이라 기대할만한 메시지였다. (☞관련기사)
그러나 지난 4~5일 미국 유타주 솔트레이크시티 앵귤러컨퍼런스(ng-conf 2015) 현장에선 MS가 타입스크립트와 '앵귤러2'의 조합을 통한 애플리케이션 개발 과정을 시연했다.
MS는 이후 공식블로그를 통해 앵귤러2가 타입스크립트 기반으로 개발되며, 이를 활용하는 애플리케이션 개발자들 역시 타입스크립트를 통해 확장된 기능을 쓸 수 있게 될 것이라고 선언했다.
■구글, 전도유망한 프레임워크에 MS 아이디어 수용
MS가 밝힌 소식은 다시 말해 구글 앵귤러2가 앳스크립트가 아니라 MS의 타입스크립트와 함께 발전할 것이라는 내용이다. 달리 보면 구글은 타입스크립트보다 더 많은 기능을 포함한 확장판 '앳스크립트'를 제안해 놓고도, 기존 MS의 언어가 앵귤러2와 더 알맞다고 판단한 모양새다.
MS 타입스크립트 개발팀의 매니저 조나단 터너(Jonathan Turner)가 공식블로그에 게재한 내용에 따르면 MS는 몇 주 안에 타입스크립트1.5 베타 버전을 배포한다. 여기에 앵귤러2 버전과 함께 돌아가는 신기능이 투입된다.
앵귤러2와 타입스크립트1.5를 사용시 제공되는 신기능 중 하나는 '메타데이터를 첨가하는(annotate) 방식'이다. 이는 라이브러리 및 애플리케이션 개발자들이 클래스 선언시 컨피규레이션정보나 조건부컴파일 확인처럼 코드에 관한 정보를 코드에서 분리하기 위해 쓰일 수 있다.
또다른 신기능은 '런타임시 타입 정보를 검색하는 방식'이다. 이게 가능해질 경우 개발자들은 타입 점검(introspection)을 더 간단히 할 수 있게 된다. 추가 런타임 확인을 통해 코드가 올바른지 검증할 수 있다. 앵귤러JS 프레임워크로 각 타입에 주입된 의존성을 설정하는 타입 정보에 적용해볼 수 있다.
MS가 이를 예고한 시점으로부터 일주일 뒤, 비주얼스튜디오 자바스크립트 툴 팀의 프로그램 매니저 조던 마티에센(Jordan Matthiesen)은 더 구체적인 내용을 제시했다. MS의 간판 개발툴 비주얼스튜디오에서 앵귤러2 데모 프로젝트를 돌리는 과정을 보여 준 것이다.
아직 타입스크립트와 맞물려 돌아가는 앵귤러2는 공식적으로 배포되지 않고 있다. MS는 이를 대신해 개발자들의 이해를 돕는 데모 프로젝트를 배포하기 시작했다. 이는 타입스크립트1.4 버전 지원도구를 설치한 '비주얼스튜디오2013' 또는 '비주얼스튜디오2015 CTP6' 환경에서 돌아간다.
관련기사
- 구글, 자바스크립트와 공존에 베팅2015.03.16
- 자바·C# 개발자 위한 MS판 자바스크립트2015.03.16
- 구글 웹개발 언어 '다트', 서버에도 쓰인다2015.03.16
- MS 타입스크립트, 자바스크립트 넘나2015.03.16
MS가 데모 프로젝트와 함께 설명한 비주얼스튜디오 기반의 타입스크립트 및 앵귤러2 개발 사례는 ▲코어 앵귤러JS 모듈 가져오기 ▲컴포넌트 정의 ▲애플리케이션에 쓰인 컴포넌트 찾기 ▲의존성 관리 등이다.
비주얼스튜디오에선 기존 ECMA스크립트(ES) 5 또는 ES6 표준 기반 자바스크립트로도 앵귤러2 애플리케이션 개발이 가능하다. 이 경우 개발자들은 MS가 제공하는 자바스크립트 편집기를 활용해 인텔리센스, 고투디피니션, 내비게이션바 등 유용한 기능을 활용할 수 있다. MS는 향후 앵귤러 프레임워크 개발자를 위한 비주얼스튜디오 편집기 기능을 추가 개발할 방침이다.