[TypeScript] 타입스크립트를 사용하는 이유?
이번 포스팅은 타입스크립트에 대해 알아보려 한다.
TypeScript는 JavaScript기반으로 추가적인 코드작성 ( 타입 지정 등)을 해준 후 다시 자바스크립트로 컴파일되어 사용되기 때문에 자바스크립트 슈퍼셋(superset) 같은 개념이다.
☝🏻위 그림과 같이 TS는 JS에서 type이 추가된 것이라고 보면 된다!
그래서! 왜 타입스크립트를 사용하는지? 왜 써야하는지에 대해 포스팅하겠다.
JS의 약점, 허점
- JS는 선언할 때 타입을 지정해주지 않기 때문에 동작하면서 언제 나도 모르게 형변환이 되어 있을 수도 있고, 그런 부분으로 인해 예기치 않은 버그가 발생할 수도 있다.
심지어 인터프립터 언어 특성상 그런 버그들을 찾는 것조차 쉽지 않다. 컴파일 과정이 없기 때문에 에러를 출력하지 않고 실행되기 때문이다.
타입스크립트의 장점?
컴파일 언어, 정적 타입 언어
프로그램을 실행시키지 않으면서 코드의 오류를 검출하는 것을 정적 검사라고 한다.
TypeScript를 사용하는 가장 큰 이유 중 하나는 정적 타입을 지원한다는 것이다.
정적 타입 검사자인 TypeScript는 프로그램을 실행시키기 전에 값의 종류를 기반으로 프로그램의 오류를 찾는다.
타입스크립트는 정적 타입의 컴파일 언어이며 타입스크립트 컴파일러 또는 바벨(Babel)을 통해 자바스크립트 코드로 변환된다.
그리고 코드 작성 단계에서 타입을 체크해 오류를 확인할 수 있다.
❗️ 하지만 코드 작성 시 매번 타입을 결정해야 하기 때문에 번거롭고 코드량이 증가하며 컴파일 시간이 오래 걸린다는 단점이 있다.
높은 수준의 코드 탐색과 디버깅
타입스크립트는 코드에 목적을 명시하고 목적에 맞지 않는 타입의 변수나 함수들에서 에러를 발생시켜 버그를 사전에 제거한다.
또한 코드 자동완성이나 실행 전 피드백을 제공하여 작업과 동시에 디버깅이 가능해 생산성을 높일 수 있다.
객체 지향 프로그래밍 지원
타입스크립트는 ES6(ECMAScript 6)에서 새롭게 사용된 문법을 포함하고 있으며 클래스, 인터페이스, 상속, 모듈 등과 같은 객체 지향 프로그래밍 패턴을 제공한다.
자바스크립트 호환
타입스크립트는 자바스크립트와 100% 호환된다. 따라서 프론트엔드 또는 백엔드 어디든 자바스크립트를 사용할 수 있는 곳이라면 타입스크립트도 쓸 수 있다. 타입스크립트는 앱과 웹을 구현하는 자바스크립트와 동일한 용도로 사용 가능하며 서버 단에서 개발이 이루어지는 복잡한 대형 프로젝트에서도 빛을 발한다.
이외에도 다른 장점은 많지만! 대표적인 장점들을 적어봤다.
이와 같은 장점들로 인해 타입스크립트를 사용해야할 이유는 충분한 거 같다.
참고