ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [TS] 타입스크립트란?
    간단정리 2020. 7. 15. 10:40

    개요

    타입스크립트는 마이크로소프트에서 개발하고 관리하는 오픈소스 프로그래밍 언어이며, 자바스크립트의 상위 조합이고 최산 ECMA스크립트를 따른다.

     

    타입스크립트는 ECMA스크립트를 따르기 때문에, 자바스크립트의 특성을 침범하지 않고 최신 ECMA 표준을 지원한다. (ECMA)

    자바스크립트를 보완하여 변수나 함수 등에 명시적으로 타입을 추가할 수 있게 타입 안정성을 높였고, 모듈화, 객체지향 프로그래밍 지원, 도구 지원등을 해준다.

    특징

    * 자바스크립트는 동적 타이핑 언어로 컴파일에 시간을 들이지 않고, 동적 타이핑을 수행하기 때문에 런타임시 속도가 빠르다.

    * 타입스크립트는 정적 타이핑 언어로 컴파일에 시간이 들지만, 컴파일 이후 동작은 자바스크립트와 같다.

     

    위와 같은 이유로 단순히 타입스크립트는 속도가 느리다. 라고 생각하는 곳은 오해이다.
    타입스크립트는 자바스크립트를 대체한다기 보다, 보완하는 역할을 담당한다.

    타입스크립트 = 자바스크립트 + 타입 이라고 표현 되기도 한다.

    동작 과정

    :string 타입스크립트는 타입 어노테이션(type annotation) 을 이용해 변수에 타입을 선언할 수 있게 한다.

      const foo: string = "Foo";

    1. Typescript를 지원하는 에디터가 타입 유효성을 실시간으로 검사한다.

    2. 문제가 없다면, 타입스크립트 컴파일러(tsc)를 실행하여 타입 검사, 이노테이션 제거를 진행한다.

    3. 출력 파일 생성 (JavaScript)

     

    결론 적으로, 타입에 대한 검사를 진행하고 이를 컴파일 과정에서 다시 제거를 해준다.
    타입이 추가 되었지만, 컴파일 후 실행되는 파일은 자바스크립트 형태이기 때문에 자바스크립트를 침범하지 않는다.

    그래서 왜 씀?

      if(typeof text !== "string") throw "문자열 아님";

     자바스크립트에서는 위와 같은 예외 처리로 검사를 해야한다. if문을 이용한 타입 검사가 많아질수록 런타임에 불필요한 타입 검사를 하게 된다. 타입스크립트를 사용하면, 이런 문제를 해결 할 수 있다. 타입스크립트는 에디터에서 타입 검사가 1차적으로 이루어진다. 그 후, 문제가 없다면 tsc를 이용하여 타입스크립트 컴파일러가 실행 된다. 이상이 없다면 JS 코드로 변환 되고, 이 출력파일에서는 별도의 타입 검사를 하지 않아도 문제가 없다.

     

     타입스크립트를 좋아하지 않는 개발자들은 Javascript의 장점인 개발 속도를 해친다! 라고 말하곤 한다. 이 말은 틀리지 않았지만 어디까지나 작은 서비스, 적은 규모의 개발자에 한정된 이야기 같다. 많은 개발자들과 함께 일할 때, 염격하지 못한 규칙은 실수를 발생 시키고 어쩌면 그것이 감정에도 영향을 준다.

     

    단순한 회사 소개 페이지를 만드는 것이 아니면, Typescript를 사용하면 좋을 것 같다.

    댓글

Developer RyuK