타입스크립트란?

fromzoo·2021년 1월 21일
0

타입스크립트란 무엇인가

타입스크립트란?

타입스크립트는 MS에서 개발하고 관리하는 오픈 소스 프로그래밍 언어로 어떤 브라우저나 호스트, 운영체제에서도 동작한다. 타입스크립트는 자바스크립트의 상위 집합으로서 ECMA의 최신 표준을 충분히 지원한다. 타입이라는 특징을 가지고 ES7이하의 표준을 포함하고 있다. 타입스크립트는 ES5를 포함하는 집합이기 때문에 기존의 ES5 자바스크립트 문법을 그대로 사용할 수 있다. 또한, ES6의 새로운 기능들을 사용하기 위해 Babel과 같은 별도 트랜스파일러를 사용하지 않아도 ES6의 새로운 기능을 기존의 자바스크립트 엔진에서 사용할 수 있다.

타입스크립트의 장점은 정적 타입 언어이기 때문에 컴파일시 시간이 조금 걸리더라도 안정성을 보장한다는 점이다.

자바스크립트의 경우에는 동적 타입 언어이기 때문에 런타임 속도는 빠르지만 타입 안정성이 보장되지 않는다. 타입스크립트는 자바스크립트의 이러한 단점을 보완하기 위해서 만들어졌다. 이러한 이유로 MS에서는 타입스크립트에 'JavaScript that scales(확장된 자바스크립트)'라는 슬로건을 만들었다.

💡 정적 타입 언어 ?

  • '타입' 즉 자료형을 컴파일 시에 결정하는 것
  • ex) C, C#, C++, Java
  • 이 언어들은 변수에 들어갈 값의 형태에 따라 자료형을 지정해줘야 한다.
    자료형에 맞지 않은 값이 들어있으면 컴파일 에러가 발생한다.
  • 타입 에러로 인한 문제점을 초기해 발견할 수 있어 타입의 안정성이 보장된다.

💡 동적 타입 언어 ?

  • 동적 타입 언어의 자료형은 컴파일시 자료형을 정하는 것이 아니고 실행시에 결정한다.
  • ex) javaScript, Ruby, Phthon
  • 런타임까지 타입에 대한 결정을 끌고 갈 수 있기 때문에 많은 선택의 여지가 있다.
  • 실행도중에 변수에 예상치 못한 타입이 들어와 Type Error를 발생시킬 수 있음

타입스크립트의 특징

타입스크립트는 대규모 어플리케이션 개발에서 다음과 같은 세가지 특징을 지원한다.

1. ES6 모듈 및 네임스페이스

타입스크립트는 ES6에서 제공하는 모듈 선언과 모듈 호출 방식을 지원한다. 또한 클래스가 커지고 개수가 많아지면 유사한 기능의 클래스들을 그룹으로 구분지어야 할 필요가 생기는데 이 때 타입스크립트에서는 네임스페이스를 지원하여 라이브러리 단위의 모듈 구성에 유리하다.

💡 모듈 ?

  • 함수나 관련된 데이터들을 묶어서 모듈로 형성 -> 파일 단위로 나누는 것
  • ES6에서 도입된 문법으로 export import해서 사용하는 것

💡 네임스페이스 ?
개체를 구분할 수 있는 범위를 나타내는 말

2. 클래스와 인터페이스

타입스크릡트는 ES6의 클래스 특징을 받아들이고, 인터페이스 특징을 지원함으로서 완전한 객체지향 프로그래밍 환경을 제공한다. class, interface, extends처럼 전통적인 객체 지향 언어에서 사용하던 키워드를 그대로 사용할 수 있다. 기존 언어와의 차이를 보면 타입스크립트에서는 자바처럼 다중 생성자를 선언할 수 없다는 점이 있다. 그리고 타입스크립트는 자바와 달리 디폴트 초기화 매개변수와 선택 매개변수를 선언할 수 있다.

3. 타입시스템

타입스크립트는 타입시스템을 지원한다. 타입 시스템은 자바스크립트의 타입을 확장하고 타입 어노테이션을 이용해 변수에 타입을 선언할 수 있게 한다.이렇게 타입이 지정되면 변수는 엄격한 타이핑이 적용돼 타입 안정성을 확보한다.

요약

  1. 최신문법 지원해주기 때문에 바벨같은 트랜스 컴파일러 도움없이 코드를 작성할 수 있다.

  2. ES6의 모듈 선언 및 호출방식 지원

  3. 네임스페이스를 지원하기 때문에 라이브러리 단위의 모듈을 구성에 유리하다.

  4. class, interface 같은 전통적인 객체 지향 언어에서 사용할 수 있는 키워드를 그대로 사용

  5. 타입스크립트는 정적타입의 언어이기 때문에 컴파일이 시간이 조금 걸리더라도 안정성을 보장해준다.

  • 자바스크립트의 경우에는 동적타입의 언어, 런타임 속도는 빠르지만 안정성을 보장해주지는 못한다.
  • 이러한 이유에서 타입스크립트는 자바스크립트의 확장된 언어
  1. 자바스크립트 타입 확장, 변수에 타입을 선언해주는 타입시스템 지원
  • 타입이 지정되면 변수는 엄격한 타이핑이 적용돼 타입 안정성 확보

타입스크립트 기능

  • 크로스 플랫폼
    • 자바스크립트가 실행되는 모든 플랫폼에서 사용할 수 있음
  • 객체지향언어
    • 클래스, 인터페이스, 모듈 등의 강력한 기능을 제공, 순수한 객체 지향 코드를 작성
  • 정적 타입 지원
    • 정적 타입을 사용하기 때문에 코드를 입력하는 동안 오류를 체크할 수 있음
    • 컴파일 단계에서 오류 포착
    • 개발자의 의도를 명확하게 코드로 기술할 수 있다.
    • 이것은 코드를 예측 가능하게 하며 가독성을 높인다.
  • DOM제어
    • 자바스크립트와 같이 DOM을 제어해 요소를 추가하거나 삭제할 수 있음
  • 최신 ECMAScript 기능 지원
    • 바벨같은 도구의 도움 없이 ES6 이상의 최신 자바스크립트 문법을 손쉽게 지원

타입스크립트란?

  • 타입스크립트는 자바스크립트를 보완하기 위해서 등장
  • 자바스크립트는 동적 언어이기 때문에 오류에서 자유로울 수 없음
  • interface, 타입 체크 등으로 대규모 프로젝트에 적합한 언어
  • 타입스크립트에서 제공하는 타입 시스템은 높은 가독성과 코드 품질 등을 제공, 런타임이 아닌 컴파일 환경에서 에러가 발생해 치명적인 오류를 더욱더 쉽게 잡아낼 수 있다.
  • 자바스크립트는 타입 시스템이 없는 동적 언어로 자바스크립트 변수는 문자열, 숫자, 불린 등 여러 타입의 값을 가질 수 있다.
  • 그렇기때문에 비교적 유연하게 개발할 수 있는 환경을 제공하는 한편 런타임 환경에서 쉽게 에러가 발생할 수 있는 단점을 가진다.
  • 타입스크립트는 이러한 자바스크립트에 강한 타입 시스템을 적용해 대부분의 에러를 컴파일 환경에서 코드를 입력하는 동안 체크할 수 있다.
  1. 동적 언어를 제공하는 자바스크립트와는 다르게 정적인 언어를 제공하는 타입스크립트는 런타임이 아닌 컴파일 환경에서 에러가 발생해 치명적인 에러를 쉽게 잡을 수 있음

  2. 타입스크립트는 강한 타입시스템을 적용해

출처

profile
프론트엔드 주니어 개발자 🚀

0개의 댓글