요즘 채용 공고를 살펴보면, 일정 규모 이상의 많은 회사들이 TypeScript 사용을 요구하고 있는것을 자주 볼 수 있었습니다. 많은 기업들에서 타입스크립트를 요구한다고 바로 공부하기 보단 어떤 장점들이 있기에 타입스크립트를 많이 사용하는지를 먼저 살펴보며 TypeScript에 대해 심층적으로 정리해보고자 합니다.
타입스크립트는 자바스크립트의 타입부분을 업그레이드해서 사용하고싶을 때 설치하여 사용합니다.
특성 | JavaScript | TypeScript |
---|---|---|
타입 시스템 | 동적 타입 언어 | 정적 타입 언어 |
컴파일 방식 | 인터프리터 언어 | 컴파일 언어 |
의존성 | 독립적으로 사용 가능 | 자바스크립트에 의존적임 (자바스크립트로 컴파일된 후 실행) |
타입 제한성 | 더 유연함 (타입에 제한을 받지 않음) | 더 나은 구조와 간결함, 일관성, 재사용성 |
파일 확장자 | .js 확장자 | .ts 확장자 |
프로젝트 적합성 | 작고 간단한 프로젝트에 적합함 | 복잡한 프로젝트에 적합함 |
자바스크립트 대신 타입스크립트를 사용하는 가장 큰 이유중 하나는 타입스크립트는 정적 타입
언어이기 때문입니다.
기존의 자바스크립트는 타입의 변화에 관대한 동적 타입 언어이기 때문에 혹시나 실수로 개발자가 원치 않는 타입값을 넣었을때 후에 오류를 찾기가 쉽지 않습니다.아래 예시를 통해 차이점을 살펴보겠습니다.
console.log(10 - '5'); // 5, type:Number
위 코드에서 자바스크립트는 동적 타입 언어이기때문에 숫자인 10과 문자열인 5의 뺄샘을 진행해도 자동으로 자바스크립트가 type을 Number로 인식하고 에러를 뿜지않고 숫자 5를 출력합니다. 얼핏보면 동적으로 처리하는 자바스크립트가 편하게 보이지만 이렇게 되면 후에 개발자의 의도와 다른 결과를 야기할 수 있기때문에 위험합니다.
console.log(10 - '5'); // error
반면 타입스크립트는 정적 타입 언어이기에 변수의 타입을 명시하지 않고 명시한 타입과 입력한 값의 타입이 같지 않다면 즉각적
으로 에러를 출력합니다. 즉각적으로 에러를 잡아주기 때문에 타입스크립트는 편합니다. 그렇다면 타입스크립트는 어떻게 에러를 즉각적으로 나타내줄 수 있을까요?
런타임
시 결정되기 때문에 타입 오류 또한 런타임
시에 발견이 됩니다.컴파일
시 변수타입이 정의되고 타입 오류 또한 컴파일
이 되면 바로 발견할 수 있습니다.정리하자면 타입스크립트는 정적 타임 언어이며, 타입 오류를 컴파일 시에 바로 발견할 수 있기 때문에 개발자의 의도와는 다른 결과가 일어나는 것을 사전에 방지할 수 있고 명시적인 타입 정보를 제공하기 때문에, 코드의 양이 많아질수록 코드의 유지 보수성이 더욱 높아집니다. 그렇기 때문에 규모가 큰 기업들에서 타입스크립트를 요구한다고 볼 수 있다
기본적인 타입스크립트의 사용법은 다음 포스팅에서 다루도록 하겠습니다