JavaScript

JavaScript와 비교한 TypeScript의 특징과 장점

bomoto 2021. 12. 10. 21:17

TypeScript를 알기 전에 JavaScript는 어떤 특징을 가진 언어인지 먼저 살펴보겠다.

 

자바스크립트는 90년대 후반에는 전성기를 누렸지만 오래가지 못하고 안 좋은 이미지를 가진 언어로 취급되었다.

그러다가 05년 Ajax와 HTML5의 등장으로 자바스크립트가 재평가되었다.

자바스크립트는 크게 네 가지 특징을 가지고 있다.

 

  1. 스크립트 언어: 간편한 코딩을 목적으로 만든 언어. 객체지향적인 구조도 가지고 있어 재이용성과 유지보수성
  2. 인터프리터 언어: 일괄 해석을 하는 컴파일 과정이 필요 없음
  3. 여러 환경에서 이용 가능: Node.js, Windows Script Host, Android/IOS 등 에서 실행 가능
  4. 여러 요소로 구성됨

 

무엇보다 JavaScript는 동적 타입 언어이다.

동적 타입의 언어는 코드를 작성할 때 엄격하게 타입을 고려할 필요가 없어 편리하지만 이로 인해 에러가 나는 경우가 자주 있다.

이런 이유로 타입이 중요한 Java나 C언어 같은 객체지향 언어 사용자들에게는 혼란을 가져다주는 경우가 있었다.

이 같은 불편함을 해결하기 위한 TypeScript는 말 그대로 타입을 지정할 수 있도록 개선되었다.

 

타입스크립트 같은 정적 타입 언어는 컴파일 시에 타입을 검사하는데 시간이 소요되지만 안정성을 보장한다.

자바스크립트는 타입 안전성을 포기하고 속도를 택한 것이고 타입스크립트는 타입 안전성이 검증된 자바스크립트 코드를 생성한다.

타입스크립트는 타입을 검사하는 컴파일 단계까지만 사용되고 실행은 자바스크립트로 이루어지기 때문에 자바스크립트를 완전히 대체한다고 볼 수는 없고 보완하는 역할을 담당한다.

 

대규모 애플리케이션을 개발하는데 필요한 조건을 생각해보자면 다음과 같다.

  • 모듈화로 모듈 간 결합도(coupling)을 줄일 수 있어야 함
  • 객체지향 프로그래밍을 지원해 코드의 중복과 복잡도 낮출 수 있어야 함
  • 코드 규모가 커지더라도 구조화를 갖춰야 함

이런 조건을 고려해 타입스크립트는 대규모 애플리케이션을 위해 다음과 같은 특징을 지원한다.

  • 모듈 시스템 - ES6 모듈과 네임스페이스 지원
  • 클래스와 인터페이스 지원
  • 타입 시스템 지원

 

타입 스크립트 파일은 타입스크립트 컴파일러(typescript compiler=tsc)가 ECMA스크립트 표준 언어로 변환한다.

이 과정을 트랜스파일링이라고 한다.

타입스크립트 파일은 작성 시에 타입 에러가 있는지 실시간으로 검사한다.

이상이 없다면 tsc는 타입스크립트 파일을 받아 타입 유효성을 검사하고 타입 어노테이션(var apple:string)을 제거하여 자바스크립트 코드로 변환하여 최종 실행한다.

이처럼 타입 검사를 컴파일 단계에서 수행하고 런타임에는 실행에만 집중해 최고의 성능을 낼 수 있게 하였다.

 

 

 

참고하면 좋은 사이트:

https://www.typescriptlang.org/docs/handbook/intro.html

 

Handbook - The TypeScript Handbook

Your first step to learn TypeScript

www.typescriptlang.org