타입스크립트란?
<aside> 🔥 Javscript 기반의 정적 타입 문법을 추가한 프로그래밍 언어.
원하는 변수의 타입을 정의하고 프로그래밍 하면 Javascript로 컴파일되어 실행할 수 있다.
</aside>
타입스크립트를 사용하는 이유
<aside> 🔥 (1) 손쉬운 버그 예방
컴파일 과정에서 타입을 지정하기 때문에 컴파일 에러를 방지할 수 있으며, 손쉬운 디버깅이 가능.
실제 연구에서 Javascript 버그의 15%는 Typescript로 감지할 수 있다고 함.
(2) 높은 생산성
Javscript에서는 코드 작성 시 객체의 필드나 함수의 매개변수로 들어오는 값이 무엇인지 알기 위해
여러 파일들을 살펴봤어야 했다,
하지만, Typescript에서는 변수의 이름 뿐 아니라 데이터 자료형까지 알 수 있게 되어 직관적이다.
(3) Javascript의 슈퍼셋.
Typescript는 Javascript의 슈퍼셋이다. 슈퍼셋은 특정 언어의 모든 기능을 포함하면서
다른 기능까지 활용 가능하도록 확장된 것.
따라서 Javascript로 짜인 코드에 대규모 수정 없이 Typescript 적용 가능.
</aside>
Javscript vs Typescript (차이)
<aside> 🔥 (1) 동적 타입 언어 vs 정적 타입 언어
Javascript의 단점 중 하나인 동적 타입을 지정하는 특징을 보완하여 Typescript 탄생.
동적 타입 : 변수의 타입이 런타임에 결정 되는 것.
이러한 동적 타입은 런타임 에러 발생 가능성을 지니고 있다.
대규모 프로젝트에서 의존성이 있는 모듈 변경 시 다른 모듈에서 에러 발생하는지 알기가 쉽지 않다.
하지만, Typescript는 컴파일 단계에서 코드 작성 중 오류를 방지하여 버그를 방지할 수 있다.
(2) 컴파일 언어 vs 인터프리터 언어
언어를 해석하는데에 차이가 있다. JS는 인터프리터 언어로 소스를 한줄 한줄 읽어가며 명령을 바로
처리하는 언어로 컴파일에 비해 빠르다.
이에 반해 TS는 컴파인 언어이다. 소스코드 전체를 컴퓨터가 이해할 수 있는 기계어로 변환되는
언어로 변환과 실행이 이루어진다.
소스코드를 기계어로 변경하는 과정에서 인터프리터에 비해 시간이 오래 걸리지만,
런타임 상황에서는 이미 모든 소스코드가 변경되어 있기 때문에 빠르게 실행 가능.
</aside>
Typescript의 단점
<aside> 🔥 (1) 초기 세팅의 어려움
Typescript는 독자적인 언어가 아니기 때문에 기존 Javascript 엔진에서 실행된다.
이를 위해 기본적으로 설치해야하는 모듈들이 있으며, 컴파일 위한 옵션도 설정.
하지만 CRA와 같은 초기 세팅 도구를 사용하면 해결!
(2) 타입 지정으로 생산성 우려
Typescript의 이해도가 낮은 개발자라면 생산성이 낮아질 수 있다.
매번 타입 지정해줘야 하기 때문.
</aside>