프론트엔드 개발자 모집 공고를 보면 자격 요건 또는 우대사항에 TypeScript 학습 경험을 적어둔 경우가 많다. 그래서 일단 이번에 진행하는 프로젝트에서는 JavaScript말고 TypeScript를 한 번 써보기로 했다. TypeScript를 공부해보기 전에 TypeScript에 대해 좀 더 자세하게 알아보고 공부하는게 더 의미있을 것 같아서 정리해봤다.
여러분의 두뇌로 타입 추론을 하지 말고, 여러분보다 똑똑한 컴파일러가 판단하도록 합시다.
타입 스크립트란?
- ‘TypeScript’는2012년 마이크로소프트가 개발한 언어로 JavaScript 에 정적 타입 문법과 객체 지향적 기능(인터페이스, 제네)을 추가한 ‘프로그래밍 언어’이다.
- 티오비는 타입스크립트를 2024년의 유망한 언어로 꼽았다.
- TypeScript는 JavaScript의 슈퍼 셋, 즉 상위 확장언어로 JavaScript 엔진을 사용하며 자신이 원하는 변수의 타입을 정의하고 프로그래밍을 하면 JavaScript로 컴파일되어 실행된다.
- 확장자로는 .ts를 사용한다.
타입 스크립트를 사용하는 이유
타입 스크립트를 사용하는 이유에는 여러 개가 있다.
❶ 정접 타입 검사와 버그 예방
- TypeScript를 사용하는 주된 이유는 '타입'이다. 타입을 사용하면 코드 퀄리티와 가독성을 높일 수 있다.
- TypeScript는 정적 타입 기반의 언어로 컴파일 단계에서 타입이 결정된다.
- 컴파일 과정에서 타입 오류를 찾아주기 때문에 컴파일 에러를 예방할 수 있고, 디버깅이 간편하다.
- 실제 연구에 따르면 JavaScript에서 발생하는 버그 중 약 15% 정도를 TypeScript의 타입 시스템이 사전에 감지할 수 있다고 한다. (모든 버그가 아니라 타입 관련 오류에 한정된다.)
❷ 높은 생산성
- JavaScript로 코드를 작성할 때에는 객체의 필드명과 함수의 매개변수를 들어오는 값을 파악하기 위해 여러 파일을 살펴야 했지만, TypeScript를 사용하면 변수의 이름과 그 데이터의 자료형을 알 수 있다. 따라서 코드 작성이 쉽고 직관적이다.
- 개발자가 객체 안의 필드값을 다 기억할 필요 없이 IDE가 자동으로 리스트 업을 해주기 때문에 생산성에 큰 기여를 한다.
❸ 점진적 도입과 JavaScript와의 호환성
- TypeScript는 JavaScript의 슈퍼 셋이기 때문에 기존의 JavaScript로 작성된 코드에 확장하는 식으로 TypeScript를 적용할 수 있다.
- 프로젝트를 점진적으로 전환할 수 있어 대규모 수정에 대한 부담이 적다.
JavaScript와 TypeScript의 실행 과정 비교
구분 | JavaScript | TypeScript |
실행 방식 | 인터프리트(해석) 및 JIT 컴파일(최신 엔진) | 개발 단계에서 JavaScript로 컴파일 후 실행 |
런타임 | JavaScript 엔진이 직접 실행 | 컴파일된 JavaScript 코드가 실행됨, 타입 정보는 존재하지 않음 |
성능 | 프로젝트 규모에 따라 차이 없음 | 컴파일 단계가 추가되지만, 실행 성능은 JavaScript와 동일 |
도입 난이도 | 쉬움(별도 컴파일 과정 없음) | 점진적 도입 가능, 컴파일 환경 필요 |
읽은 자료들
TypeScript 사용합시다!
TypeScript란, JavaScript 대신 타입스크립트를 사용하는 이유
타입스크립트를 "사용해야 하는 이유"