본문 바로가기

Programming Language/Typescript

[Programming Language] 타입스크립트(Typescript)란?

타입스크립트(Typescript)란?


개요

  프로젝트에서 Typescript를 사용하기에 앞서, Typescript의 배경과 개념에 대해 알아본다.

 

목차

 

소개

 1. Typescript란? 

 

Typescript의 등장배경

  

  Javascript는 객체들의 속성 변경이 너무 쉬운것이 장점이자 단점인 언어이다. 이로인해 테스트로 많은 버그를 찾아낸다고 하더라도 실제 배포 후 새로운 버그가 발견 될 가능성이 존재한다. 실제 프로그램의 규모가 더 커질수록 버그의 발생 가능성이 높아지므로 이러한 단점을 보완하기 위해 등장한 언어가 타입을 부여해주는 바로 Typescript이다.

 

Typescript의 정의

 

  Typescript를 검색하면 Javascript의 슈퍼셋인 오픈소스 프로그래밍이라고 정의된다. 이 때 Javascript의 슈퍼셋은 Javascript의 모든 기능을 포함하면서, 다른 기능까지 포함하도록 확장 된 것을 의미한다. 즉, Typescript란 Javascript의 모든 기능을 포함하면서 다른 기능까지 포함되도록 타입을 부여하여 확장 된 오픈소스 프로그래밍 언어로 컴파일 언어(링킹 과정은 생략)이자, 정적 타입 언어이다.

 

 

Typescript의 확장성

 

  Typescript는 ES5, ES6, ES7 등의 슈퍼셋이므로 새로운 기능들을 사용하기 위해 Babel과 같은 트랜스파일러(Transpiler)를 사용하지 않아도 ES5, ES6, ES7 등의 새로운 기능들을 기존의 Javascript 엔진(Node.js 등)에서 실행 할 수 있다.

 

컴퓨터과학에서의 슈퍼셋

 

  위에서 자주 언급되는 컴퓨터과학에서의 슈퍼셋이란, 특정한 언어의 모든 기능을 포함하면서 새로운 기능들또한 사용 가능하도록 확장 된 것을 의미한다.

 

 2. Typescript의 특징 

 

오픈소스 프로그래밍 언어

  

  Typescript는 오픈소스 프로그래밍 언어로 많은 개발자들이 참여해 빠르게 확장되어가며 버그를 수정해 나아간다. 이는 언어가 빠르게 발전 할 수 있음을 의미하며 많은 라이브러리와 프레임워크의 등장으로 개발 환경에 빠르게 녹아 들 수 있음을 의미한다.

 

정적 타입(type)

 

  Typescript는 정적 타입을 지원하기 때문에, 사용자의 의도를 명확하게 코드화 할 수 있게 된다. 이로 인해 컴파일 단계에서 오류를 포착 할 수 있어 기존의 테스트 단계에서 발견 하는 오류들을 빠르게 수정하여 개발의 효율성을 높힐 수 있게 된다.

 

Javascript와의 호환성

 

  Typescript 코드는 Javascript의 슈퍼셋이므로 Javascript가 실행되는 모든 곳(브라우저, Node.js 등)에서 Javascript로 변환된다. 따라서 기존 Javascript 기반 프로젝트를 Typescript로 컴파일해 변환 할 수 있다.

 

다양한 도구의 지원

 

  Typescript는 IDE와 같은 도구에 지원을 받음으로 인해, 대규모 프로젝트에 있어 코드 어시스트, 타입 체크, 리팩토링과 같은 도구의 지원을 받을 수 있어 개발에 용이하다.

 

객체지향 프로그래밍 언어 지원

 

  크고 복잡한 프로젝트에서 객체지향 프로그래밍 지원은 프로젝트의 코드 기반을 쉽게 해줄 수 있게된다. 이 때 Typescript는 이러한 객체지향 프로그래밍 언어의 지원이 가능하므로, 객체지향 언어가 익숙한 개발자가 Javascript의 프로젝트를 수행하는데 진입장벽을 낮춰 줄 수 있다.

 

떨어지는 가독성 및 본질적인 오류

 

  Type 지정으로 인해 코드의 길이가 길어지며, 선언되는 타입으로 인해 목적성을 잃어 Javascript에 비해 가독성이 떨어진다. 또한 지정해야 되는 Type이 많지 않음에도 불구하고 재사용성이 낮은 클래스들로 인해 불필요한 코딩이 발생 할 수도 있다. 마지막으로 Type으로 해결되지 않는 Javascript에 대한 오류또한 발생 할 수 있으므로 Javascript를 보완하는 완벽한 언어라고 할 수는 없다.

 

참고사이트

1. https://www.typescriptlang.org/

 

JavaScript With Syntax For Types.

TypeScript extends JavaScript by adding types to the language. TypeScript speeds up your development experience by catching errors and providing fixes before you even run your code.

www.typescriptlang.org