본문 바로가기
사이드 프로젝트/개발몰입과정[2021_SUMMER]

3주차 개념 스터디 - Typescript

by 의정부핵꿀밤 2021. 8. 18.
728x90

[ Typescript ]

2012년 마이크로소프트가 발표한 언어로, 자바스크립트를 기반으로 정적 타입 문법을 추가한 프로그래밍 언어이다.

 

[ Typescript의 특징 ]

컴파일 언어 & 정적 타입 언어

자바스크립트가 동적 타입의 인터프리터 언어로 런타임에서 오류를 발견할 수 있는 것에 반해, 타입스크립트는 정적 타입의 컴파일 언어로 타입스크립트 컴파일러 또는 바벨(Babel)을 통해 자바스크립트 코드로 변환된다.

코드 작성 단계에서 타입을 체크해 오류를 확인할 수 있고, 미리 타입을 결정하기 때문에 실행 속도가 매우 빠르다는 장점이 있다.

하지만 코드 작성 시 매번 타입을 결정해야 하기 때문에 번거롭고 코드량이 증가하며, 컴파일이 오래 걸린다는 단점이 있다.

 

자바스크립트 슈퍼셋(Superset)

타입스크립트는 자바스크립트의 슈퍼셋, 즉 자바스크립트 기본 문법에 타입스크립트의 문법을 추가한 언어이다.

따라서 유효한 자바스크립트로 작성한 코드의 확장자를 .js에서 .ts로 변경하여 타입스크립트로 컴파일해 변환이 가능하다.

 

 

객체지향 프로그래밍 지원

타입스크립트는 ES6(ECMAScript 6)에서 새롭게 사용된 문법을 포함하고 있으며 클래스, 인터페이스, 상속, 모듈 등과 같은 객체 지향 프로그래밍 패턴을 제공한다.

 

[ Typescript 사용을 추천하는 이유 ]

높은 수준의 코드 탐색과 디버깅

타입스크립트는 코드에 목적을 명시하고 목적에 맞지 않는 타입의 변수나 함수들에서 에러를 발생시켜 버그를 사전에 제거한다.

또한 코드 자동완성이나 실행 전 피드백을 제공하여 작업과 동시에 디버깅이 가능해 생산성을 높일 수 있다. 

(실제로 한 연구에 따르면 모든 자바스크립트 버그의 15%가 사전에 타입스크립트로 감지가 가능하다고 한다)

 

자바스크립트 호한

타입스크립트는 자바스크립트와 100% 호환되기 때문에 프론트/백엔드 등 어디든 자바스크립트를 사용할 수 있는 곳이면 타입스크립트도 사용이 가능하다.

타입스크립트는 앱과 웹을 구현하는 자바스크립트와 동일한 용도로 사용이 가능하며 서버 단에서 이뤄지는 복잡한 대형 프로젝트에서도 사용이 가능하다.

 

강력한 생태계

타입스크립트는 나이(?)에 비해 강력한 생태계를 가지고 있다.

대부분의 라이브러리들이 타입스크립트를 지원하며 마이크로소프트의 VSCode를 비롯해 각종 에디터가 타입스크립트 관련 기능과 플러그인을 지원한다.

 

점진적 전환 가능

기존의 자바스크립트 프로젝트를 타입스크립트로 전환하는데 부담이 있다면 추가 기능이나 특정 기능에만 타입스크립트를 도입함으로써 프로젝트를 점진적으로 전환이 가능하다. 

자바스크립트에는 주석을 추가하는 것부터 시작해 시간이 지남에 따라 코드베이스가 완전히 바뀌도록 준비 기간을 가질 수 있다.

 

하지만, 새로운 프로그래밍 언어에 대한 러닝 커브(Learning Curve), 상대적으로 낮은 가독성, 코드량 증가 등의 이유로 타입스크립트 사용을 망설이는 개발자가 많다. 따라서 프로젝트 성격에 따라 사용 여부를 결정하면 된다!

-> 프로젝트의 규모가 크고 복잡할수록, 유지보수가 중요한 장기 프로젝트일수록 유용할 것이다!

 

 

[ 프론트엔드 프레임워크와 타입스크립트 ]

리액트(React)

리액트와 타입스크립트의 호환성은 비교적 좋다.

리액트 공식 홈페이지에서는 타입스크립트를 사용하기 위한 가이드를 제시하고 있다.

ex) 페이스북에서 배포중인 리액트 웹 개발용 보일러 플레이트(Boilerplate)인 Create React App은 간단한 옵션 추가만으로 타입스크립트를 사용할 수 있도록 지원한다.

 

뷰(Vue.js)

뷰 3.0부터 타입스크립트를 공식 지원하며, 뷰 3.0 CLI(Command Line Interface)는 타입스크립트 도구화 지원을 기본으로 제공한다.

 

앵귤러(Angular)

앵귤러는 버전 1은 자바스크립트 기반으로 만들어졌지만, 버전 2부터는 타입스크립트 기반으로 만들어졌으며, 타입스크립트를 권장한다.

 

 

 

 

 

 

 

참고사이트)

https://www.samsungsds.com/kr/insights/TypeScript.html

 

활용도가 높아지는 웹 프론트엔드 언어, 타입스크립트(TypeScript)

활용도가 높아지는 웹 프론트엔드 언어, 타입스크립트(TypeScript)

www.samsungsds.com

 

728x90

댓글