타입스크립트는 자바스크립트의 모든 기능을 포함하면서 정적 타입을 지원하는 언어라고 지난 포스팅에서 말했었다.=> Why TypeScript
이번 포스팅에서는 타입스트립트를 도입하여 동적타입(JS)에서 정적타입(TS)으로 바꾸었을때 어느 부분에서 이점을 얻는지 알아보자!
프로그래밍 언어는 여러 기준에 따라 그 종류가 나뉠 수 있지만 type이 결정되는 때에 따라 크게 두가지 종류가 있다.
- ❗️Statically Programming Language ( 정적언어 )
=> Compile time에 type이 결정되고 type을 확인할 수 있다. type이 맞지않다면 ⇨가 난다.- ❗️Dynamically Programming Language ( 동적언어 )
=> type없이 변수를 선언하여 값을 지정할 수 있고, Runtime 때 type이 결정되고 확인할 수 있다. Runtime Error가 난다.
JavaScript 는 동적언어로 프로그램이 실행될 때 즉, Runtime때 타입이 결정되고 때문에 Runtime Error의 위험에 노출되어있다.때문에 개발 중 이슈를 잡아내지 못할 가능성으로 인해 사용자가 프로그램을 사용 중에 에러가 발생할 수 있다. 또한 코드에서는 type이 명시되어 있지 않기 때문에 가독성이 떨어진다.
반면, TypeScript 는 JavaScript에 type을 더하여 위의 문제들을 해결하였다. 정적 언어로 타입을 컴파일 시에 결정할 수 있고, 개발 중에 즉각적으로 error를 받아볼 수 있다. 덕분에 안정적이고 확장가능한 소프트웨어를 만들어 낼 수 있다. 또한 객체의 형태를 명시, 변수의 type명시, 함수라면 인자와 리턴값의 명시를 통해서 더 나은 가독성을 보장받을 수 있다.
- JavaScript
- type이 Runtime에 결정됨 ⇨ Runtime error의 가능성 ↑ ⇨ 프로그램 실행 중 버그발생 가능성 ↑
- type이 명시되지 않는다. ⇨가독성 떨어짐- TypeScript
- type을 Compile time에 결정할 수 있음 ⇨ Runtime error 방지 ⇨ 버그 가능성을 낮춤
- 가독성 ↑
컴파일타임 | 런타임 |
---|---|
Syntax error | 0 나누기 오류 |
Type check error | null 참조 오류 |
- | 메모리 부족 오류 |