typeScript

권혁진·2022년 12월 11일
0

타입스크립트의 특징

1. Microsoft에서 개발하고 유지/관리 되는 Apache 라이센스가 부여된 오픈 소스이다.

2. 타입스크립트는 자바스크립트의 슈퍼셋(Superset)이며, 자바스크립트에 '타입'을 부여한 언어를 의미한다.

-> 슈퍼셋이란 컴퓨터 과학에서 특정한 언어의 모든 기능을 포함하면서, 다른 기능까지 포함하도록 향상 또는 확장된 것을 의미

3. 타입스크립트는 컴파일 언어이자 정적인 타입(Static Type)이다.

-> 자바스크립트는 어떤 타입을 반환하는지에 대해 명시하지 않는 동적 타입이다. 이에 반해 타입스크립트는 컴파일 단계에서 타입을 체크하며, 정적타입으로써 타입에 대해 명시를 하여 발생하는 오류에 대해서 사전에 줄일 수 있음.

4. 객체지향 프로그래밍을 지원한다.

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

타입스크립트의 동작 과정

1. 개발자가 '타입스크립트 코드'로 작성을 한다

2. 작성한 타입스크립트 코드는 '타입스크립트 컴파일러(tsc)'를 통해 파싱하여 '타입스크립트 AST 코드'로 변환된다.

3. '타입 검사기(Typechecker)'를 통하여 파싱 된 '타입스크립트 AST 코드'의 타입을 체크한다.

4. 타입스크립트 AST의 코드를 '자바스크립트 코드'로 변환한다.

-- 해당 과정까지는 '타입스크립트 컴파일러(tsc)'에 의해 수행이 된다.

5. 자바스크립트 코드를 '자바스크립트 AST 코드'로 파싱한다.

6. 자바스크립트 AST를 '바이트 코드'로 변환된다.

7. 런타임(runtime)이라는 실행환경에서 바이트 코드를 실행한다.

-- 해당 과정까지는 '자바스크립트 런타임(js 엔진, node.js)'에 의해 수행이 된다.

[ 요약 ]

=> 자바스크립트 코드 -> (타입스크립트 컴파일러로 파싱) -> 타입스크립트 AST 코드 -> (타입 검사기로 체크) -> 자바스크립트 코드 -> (파싱) -> 자바스크립트 AST 코드 -> 바이트 코드 -> (런타임) -> 코드 실행

자바스크립트 vs 타입스크립트

  javascript typescript
장점 코드 작성이 유연하다.
빠른 코딩이 가능하다.
컴파일 시 에러를 잡을수 있다.
IDE와 결합성이 좋다.
코드 가독성이 좋다.
단점 프로그램이 알수 없는 에러로 죽곤한다.
코드 가독성이 비교적 떨어진다.
IDE와 결합성이 비교적 떨어진다.
코드 작성에 제약이 많다.

타입스크립트의 사용을 고려 하는 이유

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

-> 타입스크립트는 코드에 목적을 명시하고 목적에 맞지 않는 타입의 변수나 함수들에서 에러를 발생시켜 버그를 사전에 제거한다. 또한 코드 자동완성이나 실행 전 피드백을 제공하여 작업과 동시에 디버깅이 가능해 생산성을 높일 수 있다. 실제로 한 연구에 따르면 모든 자바스크립트 버그의 15%가 사전에 타입스크립트로 감지 할 수 있다고 한다.

2. 자바스크립트 호환

-> 타입스크립트는 자바스크립트와 100% 호환된다. 따라서 프론트엔드 또는 백엔드 어디든 자바스크립트를 사용할 수 있는 곳이라면 타입스크립트도 쓸 수 있다. 타입스크립트는 앱과 웹을 구현하는 자바스크립트와 동일한 용도로 사용 가능하며 서버 단에서 개발이 이루어지는 복잡한 대형프로젝트에서도 두각을 드러낸다.

3. 강력한 생태계

-> 타입스크립트는 그리 오래되지 않은 언어임에도 불구하고 강력한 생태계를 가지고 있다. 대부분의 라이브러리들이 타입스크립트를 지원하며 Microsoft의 VScode를 비롯해 각정 에디터가 타입스크립트 관련 기능과 플러그인을 지원한다.

4. 점진적 전환 가능

-> 기존의 자바스크립트 프로젝트를 전환하는데 부담이 있다면 추가 기능이나 특정기능에만 타입스크립트를 도입함으로써 프로젝트를 점진적으로 전환 가능하다. 자바스크립트에 주석을 추가하는 것에서부터 시작해 시간이 지남에 따라 코드베이스가 완전히 바뀌도록 준비 기간을 가질 수 있다.

결론

타입스크립트와 자바스크립트를 고민할 때 어떤 언어가 무조건 정답이라는 것은 없다.

자바스크립트를 사용하다 타입스크립트로 넘어가게 되면 새로운 프로그래밍 언어에 대한 Learning curve, 코드량의 증가를 이유로 사용을 망설일 수 있다.

이는 프로젝트의 성격에 따라 사용할 지 말지 결정해야 되는 문제라고 본다.

프로젝트의 규모가 크고 복잡할수록, 유지보수가 중요한 장기프로젝트일수록 타입스크립트의 이점이 부각될 것으로 기대한다.

profile
성장하는 개발자

0개의 댓글