TypeScript : 개요

사용하게된 계기

3D 그래픽 디자인 툴중에 Blender라는 착한 오픈소스 프로그램을 접하게 되었고, 이러한 애드온(AddOn)중에 Blend4Web을 접하게 되었다. 이 Blend4Web은 웹 브라우저에서 3D 그래픽 렌더링을 좀더 간단하게 할 수 있는 프레임워크에 해당된다. 문제는 3D 그래픽 웹 앱이 복잡해질 수록 코드줄이 너무 많아지는데, JavaScript 언어적 특성상 규모가 커질 수록 코딩이 어려워지는 단점이 있다.


 이러한 배경에 협업하기로 한 당시 러시아 엔지니어 측에서 TypeScript를 사용했기 때문에 JavaScript보다도 먼저 TypeScript를 사용하게 되었다.


등장계기

TypeScript is superset of JavaScript

나름 힘좀 쓰는 개발자들은 JavaScript(JS)를 무시해왔었다. 이는 스크립트 개념의 프로그래밍 언어가 컴파일 계열 언어에 비해서 실행 속도가 느리기 때문이었는데, 어느날 Java의 가상머신의 발전과 하드웨어의 발전 여기에 구글이 영감을 얻어 JS실행속도를 획기적으로 올리는 등 엄청난 변화가 찾아오게 되었다. 그와 동시에 단일 페이지 웹 앱이라는 개념이 확산됨과 동시에 서버단의 스크립트 언어로써의 확장 등 단 시간내에 엄청난 발전을 이룩하게 되었다.


이로 인해서 과거에는 간단하게 작성하던 스크립트가 갑자기 거대한 스크립트를 작성해야 되었고, MS의 어느 용기있는 옹이 웹 개발자의 삽질을 관찰한 결과 설계하게 된 것이 바로 TypeScript(TS)이다. 하지만, 이러한 언어는 TS만 있는 것이 아니라 이미 CoffeeScript(CS)가 있었다. 하지만, MS에서 오픈소스로 개방하는 등 파격적인 행보를 하면서 빠르게 저변을 확산해 가고 있다.


문법의 특징

 기본적인 설계 방향은 JS위에 C#/Java를 얹힌 문법의 개념이라서 JS만 익힌 사람이라면 거부감이 들 수 있지만, 반대로 C/C++을 먼저 익힌 사람 입장에서는 친숙하다. JS가 C라면 TS는 C++ 개념으로 만들어진 것이라서 JS 문법을 TS에서도 사용이 가능하다. 다만 실행하기 위해서는 TS컴파일러로 컴파일을 해야 한다.


 기존의 라이브러리는 재정의를 해야 하는데, 유명한 라이브러리는 이미 재정의된 파일을 제공하고 있다. npm에서 tsd모듈을 받은 다음에 d.ts 파일을 받아서 사용하면 된다. 재정의 파일은 재정의만 해주는 파일이기 때문에 컴파일이 되지 않고, TS코드를 작성할때 인텔리전트와 타입검사만 지원을 해준다. 실제 실행하기 위해서는 JS 라이브러리 파일도 같이 있어야 한다.


활용범위

JS가 사용되는 곳에서는 TS도 사용이 가능하다. 그리고 TS에 JS코드를 작성해도 실행이 된다. VS20xx 뿐만아니라 Node.js의 npm을 통해서 컴파일러를 다운로드 받을 수 있기 때문에 다른 통합개발툴에서도 컴파일러 설정을 잡아 주기만 해도 컴파일이 가능하다.


Google의 Angular 2.0에서도 TS를 적극 사용하게 되면서 더욱더 주목을 받게 되는 언어가 되었다.


참고 자료

 아쉽지만 아직은 한글로 된 자료가 별로 없다. 영문으로 된 문서를 직접 참조를 해야 한다. 개인적으로 핸드북 번역을 시도는 하고는 있지만.. 언제 마무리 될지는 장담 못 하겠다.


공식 홈페이지 [참조링크]

공식 홈페이지의 핸드북(영문) [참조링크]

Git Book 튜토리얼(영문) [참조링크]

ECMAScript6 명세(TS설계 기준) [참조링크]

TSD공식 홈페이지(타입재정의:영문) [참조링크]

+ Recent posts