본문 바로가기
Front-end

TypeScript

by 탄이. 2019. 1. 12.

TypeScript

개요

  • TypeScript는 Microsoft에서 개발하여 2012년에 발표한 오픈 소스 프로그래밍 언어입니다. 대규모 JavaScript application 개발을 목적으로 만들어졌습니다.

  • TypeScript를 활용하여 개발하여도 기존의 소프트웨어 컴포넌트와 자바스크립트 라이브러리의 동작 방식과는 충돌하지 않는다.

  • 또한, 동적인 모듈 로딩을 지원하여 네이밍 충돌 문제를 줄일 수 있게 해주며, 추가된 타입 체계를 바탕으로 생산성을 높여주는 여러가지 툴과 사례(정적 타이핑, 심볼 기반 네비게이션, 구문 완성, 코드 리펙토링 등)를 활용할 수 있다.

특징

  • TypeScript는 JavaScript ES5(ECMAScript 5) 문법의 상위 집합(Super set)입니다. TypeScript는 JavaScript의 모든 기능을 포함하고 그 외 추가적인 기능들을 가지고 있습니다.

  • TypeScript는 컴파일 언어이지만 컴파일 결과가 machine code가 아닌 JavaScript 코드가 나옵니다. ( 이런 프로그래밍을 메타프로그래밍 이라고 하죠. ) 그렇기 때문에 compile 대신에 transpile 이라고도 합니다.

  • 이때 코드에서 변수를 정의한 순서나 이름을 바꾸지 않는다. 따라서, 자바스크립트 결과물을 브라우저에서 디버깅하여 TypeScript 코드를 수정하기에도 용이하다.

  • 또한, 부가적으로 소스 맵도 제공하므로 TypeScript 소스를 직접 디버깅하는것도 가능하다.

  • TypeScript를 지원하는 도구들은 일반적으로 코드 저장시 자바스크립트 결과물을 생산하며, 기존의 자바스크립트 개발 사이클 대로 프로젝트를 진행할 수 있다.

  • 메타프로그래밍

    • 특정 형태의 코드를 작성한 후 컴파일하면 그 코드가 의미하는 다른언어의 코드( JavaC++ )가 생성되는 프로그래밍을 지칭합니다.

    • 장점

      • 컴파일 타임에 최적화가 이루어지고 결과적으로 실행 시 수행속도가 빨라질 수 있습니다.

      • 일반화 프로그래밍( Generic Programming )이 가능합니다. 프로그래머는 처리할 구조와 데이터에 집중하고 컴파일러에 의해 특정 언어로 변환이 되는 구조이기 때문입니다.

      • 결과로 도출되는 언어가 갖지 못하는 여러가지 개념들을 template에 정의해서 작성하고 이를 결과언어로 적절하게 표현하여 기능상의 확장을 손쉽게 가져올 수 있습니다.

    • 단점

      • 일반적으로 Template Metaprogramming은 또 다른 형식으로 프로그래밍 하기 때문에 코드 자체가 더 난해합니다. 즉, Readability(해독성)에 문제가 있습니다.

      • compiler에 의해서 새로운 코드가 생성되는 구조이기 때문에 compiler에 대한 의존도가 상당히 높습니다. 따라서 이식성의 문제가 발생할 여지를 가지고 있습니다.

  • TypeScript는 compile 시점에 type checking이 일어나는 정적 타입 언어입니다.

설치

  • npm install -g typescript 커맨드를 통해서 설치할 수 있다.

  • Visual Studio 2013 update 2가 설치되어 있다면 기본으로 설치되어 있다.


댓글