자바·C# 개발자 위한 MS판 자바스크립트

일반입력 :2014/08/21 08:41    수정: 2014/08/21 09:22

마이크로소프트(MS)가 한국 개발자들에게 웹 애플리케이션(이하 '앱') 프로그래밍 언어 '타입스크립트' 사용을 적극 권하고 나서 눈길을 끈다. 이는 자바스크립트를 쓰던 환경에 대신 적용할 수 있는 언어인데 실무 환경에 더 효율적일 뿐아니라 C#이나 자바 프로그래머들이 사용하기에도 부담스럽지 않을 것이란 메시지다.

그리고 한국MS는 내달 연례 세미나의 주제 강연을 시작으로 커뮤니티 확대도 장려할 방침이다. 20일 한국MS 개발자플랫폼사업부(DPE) 김영욱 부장은 오는 9월 24일 서울에서 연례 개발자컨퍼런스 '테크데이즈코리아2014'를 연다며 현장에서 타입스크립트 언어를 주제로 한 강연 계획이 잡혀 있다고 말했다.

김 부장은 국내 개발자들에게 타입스크립트는 아직 등장 초기라, 일단 언어를 알리는 일에 주력하고 있는데 첫 행사를 마친 이후에도 후속 세미나 '테크데이즈미니'를 진행하는 등 타입스크립트에 대한 개발자들의 관심을 꾸준히 이어갈 수 있도록 하겠다고 예고했다.

그는 이어 향후 공식 커뮤니티 구성보단 각자 마음 맞는 개발자들이 스스로 모이도록 분위기를 조성하고 '멜팅팟' 같은 커뮤니티 지원 프로그램을 운영할 것이라며 외국어로 된 공식사이트 콘텐츠도 가능한만큼 한국어로 번역 제공할 생각이라고 덧붙였다.

타입스크립트는 웹앱 개발에 특화된 자바스크립트 강화판(superset) 언어다. 델파이, C# 창시자로 유명한 덴마크 출신 소프트웨어(SW) 엔지니어 아네르스 하일스베르(Anders Hejlsberg)가 속한 MS 개발팀이 내놨다.

앞서 언급했듯이 타입스크립트 문법은 자바스크립트와 비슷하다. 그래서 기존 자바스크립트 코드를 그대로 포함할 수도 있다. 웹앱 개발 환경에서 자바스크립트의 한계를 극복할 목적으로 나왔지만 이전에 자바스크립트로 만든 걸 버리지 않아도 된다.

자바스크립트와 별 차이 없다면 그냥 자바스크립트를 써도 될텐데, MS는 타입스크립트를 왜 만들었을까? 자바스크립트의 한계 때문이다. MS는 실력차가 나는 SW 엔지니어들이 모여 일하는 환경에선 자바스크립트란 언어의 특성이 생산성에 불리하다고 판단했다.

김 부장은 자바스크립트는 자유도가 높은 언어라 같은 목적을 위해 쓰더라도 사람마다 천차만별의 결과물을 얻게 된다며 소규모 개발환경이라면 충분히 편리하지만 역량차가 큰 사람들이 모여 일하는 기업내 프로젝트처럼 대규모 개발환경에선 각자의 결과물을 수렴하는 데 어려움을 겪게 된다고 지적했다.

타입스크립트는 자바스크립트의 자유도를 살짝 제한하는 대신 일정한 틀 안에서 다수 개발자가 협업 프로그래밍을 진행하기에 유리한 형태로 만들어졌다. 눈으로 볼 수 있는 소스코드 형태도 C#이나 자바 프로그래밍을 경험해 본 사람들에겐 어디서 많이 본 듯한 느낌을 준다.

일례로 변수 처리 방식이 유연한 자바스크립트의 동적 타입 특성을 약간 정적으로 제한한 '선택적 정적 타입'을 들 수 있다. 또 자바나 C#처럼 규격화된 클래스 선언이나 모듈 지원 방식 등 다른 기업환경에서 사용되는 프로그래밍 언어의 특징을 담아 보완했다.

김 부장은 이처럼 정형화된 타입스크립트의 특성은 사용자뿐아니라 이를 지원하는 개발도구에도 '예측가능성'을 제공해, 개발도구 차원에서 더 효율적인 편의 기능을 쓸 수 있게 해준다고 말했다.

실제로 MS는 지난 5월 중순부터 아예 자사 간판 개발툴 '비주얼스튜디오'에 타입스크립트를 공식 지원하기 시작했다. 당시 공개된 타입스크립트1.0.1 버전이 비주얼스튜디오2013 업데이트2 지원 언어에 포함됐다. 이는 비교적 발빠른 대응으로 평가된다. 지난 4월 타입스크립트 첫 정식판 1.0 버전이 등장한지 불과 1개월 열흘 남짓 지나서였기 때문이다.

덕분에 비주얼스튜디오 최신판에선 타입스크립트용 템플릿을 놓고 프로젝트를 시작할 수 있다. 코드를 짤 때 툴에서 지원하는 구문 자동완성도 연동된다. 기존 비주얼스튜디오와 C#처럼 툴과 언어가 한몸처럼 움직인다는 얘기다.

김 부장은 원래 (C#의 아버지라 불리는) 하일스버그의 주특기가 '툴을 위해 언어에 이런 기능을 집어넣었나' 싶을 정도로 언어와 개발도구를 절묘하게 결합하는 건데 비주얼스튜디오의 타입스크립트 프로그래밍도 그렇다며 그가 뭘 만들어내면 보통 (MS 내부에서도) 표준처럼 쓰이는 경향이 있기 때문에, 단순 자바스크립트 사용보다 비주얼스튜디오 기반의 타입스크립트 프로그래밍이 인기를 얻을 듯하다고 언급했다.

타입스크립트는 이처럼 일정 규모 이상의 협업 방식의 개발 환경에서 효율적인 특징을 갖고 있으면서, 동시에 기존에 작성된 자바스크립트 코드 역시 버리지 않아도 된다는 점에서 현업 환경에 친화적이다. 타입스크립트 이전에 등장했던 여러 자바스크립트용 프레임워크로 짠 코드를 걷어내지 않고도 과거 인프라와 새로 개발하는 결과물을 함께 유지관리해 나갈 수 있다는 뜻이다.

자바스크립트의 역할은 계속 확산 추세다. 향후 기술업계에서 HTML5는 클라이언트쪽 개발 표준언어로 자리잡을 예정이고, 이미 노드JS 프레임워크 기반으로 서버 애플리케이션을 만드는 방식도 인기를 더하고 있다.

김 부장은 자바스크립트가 들어간 영역이면 프론트엔드부터 백엔드까지 모두 타입스크립트를 적용할 수 있다며 링크드인, 야머, 페이팔처럼 내부 개발팀 역량이 중시되는 회사에서 노드JS로 대규모인프라를 위한 서버사이드개발을 하는 경우라면 특히 타입스크립트를 도입하기에 알맞은 상황이라고 강조했다.

장점이 많은 타입스크립트도 개발자들에게 아쉬울만한 부분은 있다. 스크립트언어 특성상 코드 편집기 선택의 제약은 없지만, 아직 통합개발환경(IDE) 수준에서 타입스크립트라는 언어를 제대로 지원하는 사례는 MS의 비주얼스튜디오뿐이다. 타입스크립트는 오픈소스 언어지만, MS가 다른 개발툴을 지원해 줄 이유는 없다.

관련기사

뒤집어보면, 자바스크립트 프로그래밍의 비중이 커가는 웹스케일 시대에 타입스크립트는 MS의 또다른 개발자 생태계를 만들어 줄 열쇠로 보인다. 비주얼스튜디오가 자바스크립트보다 강력한 타입스크립트 개발툴로 인정된다면 MS 생태계에 C#, 자바, 자바스크립트 개발자를 끌어모을 촉매 역할을 할 수도 있다.

김 부장은 (코드) 에디터는 아무거나 원하는 걸 쓰고 런타임은 어디에든 이식 가능하도록 소스코드가 개방돼 있지만 지금으로선 비주얼스튜디오가 타입스크립트를 위한 툴로 가장 편리할 것이라고 말했다.