타입스크립트란?
자바스크립트의 Superset(확대 집합)입니다.
자바스크립트의 장점과 새로운 기능들이 추가되었습니다.
타입스크립트는 파일을 컴파일해서 자바스크립트 코드로 만듭니다.
컴파일하는 과정에 새로운 구문과 더 나은 방법을 활용할 수 있게 합니다.
타입스크립트의 경우에
C언어, Java와 같은 정적 타입 언어와
Javascript의 동적 타입 언어의 장점을 모두 가지고 있습니다.
모든 변수에 타입을 지정하지 않아도 되지 않고, 필요한 곳에서만 타입을 지정하면 되는
점진적 타입 언어 입니다.
타입스크립트 장점
브라우저 런타임이 아니라 컴파일 시점에서 오류 파악 가능합니다.
자바스크립트 코드에서는 아래와 같이 예측하지 못한 버그가 발생할 수 있습니다.
function add(num1, num2) {
return num1 + num2
}
console.log(add(1 + 2)) // 3
console.log(add('1' + '2')) // 12
오류가 나는 코드 있지만, 코드를 브라우저에서 직접 실행하기 전까지 오류를 확인할 수가 없습니다.
function fixedNumber(num) {
return num.toFixed(1)
}
console.log(fixedNumber('1'));
하지만 타입스크립트를 사용하면 해당 문제점들을 해결할 수가 있습니다.
타입스크립트를 사용하면 런타임 에러가 발생할 가능성이 줄고,
대규모 앱에서 안정적으로 코드를 리팩토링 할 수 있는 장점이 있습니다.
또 여러 개발 도구에서 타입 기반 자동완성 기능을 사용할 수 있어서, 개발 환경을 개선할 수 있습니다.
타입스크립트는 언제 사용하면 좋을까?
타입스크립트의 가장 큰 단점은
타입스크립트 파일은 변환해서 자바스크립트 코드로 만듭니다.
변환하는 과정에서 성능 저하가 생길 수 있고, 배포나 최적화 과정에 문제가 있을 수도 있습니다.
타입스크립트에 비해 자바스크립트는 유연하고 빠릅니다.
변환 없이 브라우저에서 바로 새로고침으로 실행할 수 있습니다.
하지만, 타입스크립트를 도입하면 좋은 경우도 있습니다.
1. 대규모 앱일 때,
두 명 이상 개발자가 개발하거나,
코드 양이 방대할 때 타입스크립트를 이용해서 개발하면 예상치 못한 오류를 피할 수 있습니다.
2. 팀 내 개발자가 정적 타입 언어에 익숙할 때,
C#, Java 언어에 익숙한 개발자가 많을 때에는, 자바스크립트에 자유롭고 유연한 특성이 불편할 수가 있습니다.
타입스크립트는 C#을 만든 사람이 개발하였기 때문에 구문이 비슷하고 쉽게 적응할 수 있습니다.
3. 구형 브라우저에서도 작동이 필요할 때
타입스크립트를 이용하여 컴파일을 하게 되면 IE에서도 작동할 수 있도록 변환할 수 있습니다.
Babel의 역할을 대신할 수 있습니다.
4. 프레임워크가 타입스크립트를 권장하는 경우
위 4가지 정도의 이유라면 타입스크립트를 사용하는 것이 좋을 수도 있을 것 같습니다.
타입스크립트의 장단점을 잘 비교하여서 프로젝트 상황에 맞게 도입하시기를 바랍니다.