Software Development/IT

타입스크립트(Typescript) 알아보기

huiyu 2021. 1. 8. 06:00

타입스크립트(TypeScript)

 Microsoft에서 개발하고 관리하는 언어. 자바스크립트의 슈퍼셋(상위확장)인 오픈소스 프로그래밍 언어이다. 확장자는 .ts이며 컴파일하여 .js를 출력한다. 최종적으로 이 자바스크립트를 구동하게 된다. 타입스크립트는 컴파일하면 자바스크립트가 되는 언어이며, 자바스크립트에 Type을 설정할 수 있는 게 가장 큰 특징이다.

자바스크립트(JavaScript)

- 프로토타입 기반의 프로그래밍 언어, 스크립트 언어이다. HTML, CSS와 함께 웹을 구성하는 요소 중 하나로 HTML이 웹페이지의 기본 구조, CSS가 디자인, JavaScript는 웹페이지의 동작을 담당한다.
- HTML5가 나오기 전 대부분의 인터랙티브한 웹페이지는 기존 플래시와 같은 플러그인에 의존하였었는데, HTML5에선 자바스크립트로 대체되었다.

스크립트 언어(Scripting Language)

 소스코드를 컴파일하지 않고 실행할 수 있는 프로그래밍 언어. 이미 존재하는 소프트웨어를 제어하기 위한 용도로 대부분 소스코드를 한줄한줄 읽어 바로 실행하는 인터프리터 방식을 사용한다. 컴파일 과정 없이 바로 실행할 수 있다는 장점이 있지만 번역 과정을 거쳐야 하기 때문에 느리다는 단점이 있다.

-> 자바스크립트는 스크립트 언어이기 때문에 웹 등에서 컴파일 없이 바로 실행할 수 있는 장점이 있으나, 대규모 어플리케이션을 개발하기에는 한계가있다. 자바 스크립는 처음 웹브라우저를 위한 간단한 스크립팅에만 사용했으나 갈수록 큰 규모의 앱에서도 사용이 필요해졌으나 대규모 앱에서 개발하는데 한계가 있었다.

타입 스크립트(TypeScript) = Type + JavaScript

 TypeScript는 JavaScript를 대체하기 위한 언어가 아닌, 보안하기 위한 언어이다. TypeScript는 컴파일하여 JavaScript로 만들어준다. TypeScript는 자바스크립트의 기능을 확장하여 개발시 불편했던 부분을 보완하고 기능을 확장하여 제공해주는 언어이다.

 가장 큰 특징으로 JavaScript에 Type을 줌으로써 컴파일 시점에 타입체크가 가능하다는 것, 객체지향 프로그래밍 패턴 등을 자바스크립트에서 사용할 수 있다라는 등의 기능을 제공하는 장점이 있다. 

TypeScript 장점

 1) 정적타입 지원

- 자바스크립트 : 동적타입

 동적타입 언어의 자료형은 컴파일시 자료형을 선언하는 것이 아니고 실행 시에 결정된다.  예제와 같이 변수 a와 b는 자료형 없이 실행시 타입이 결정되어 동작한다. 의도치 않은 서로 다른 타입을 계산할 수 있고 이로 인해 버그가 발생할 수 있다.

const a = 3;
const b = 'ABCDE';
console.log(a*b)

- 타입스크립트 : 정적타입

C,C++,Java와 같은 언어에서 사용. 타입의 자료형을 컴파일시 결정. 변수에 들어갈 형태에 자료형을 지정해준다. 컴파일 시 자료형에 맞지 않은 값이 들어있으면 컴파일 에러가 발생한다.

const a:number = 3;
const b:string = '5';
console.log(a*b)

-> 타입스크립트는 정적타입 언어로, 컴파일시 타입검사를 실시해 안정성을 높여준다.

2) type에 대한 예외처리 불필요

typeof operand
typeof(operand)

-JavaScript는 데이터의 타입을 확인하기 위해 typeof 연산자를 사용한다. 런타임시 타입을 확인하기 위해 위와같은 코드를 넣어 확인하고, 이와 같은 처리를 반복해서 추가할 경우 성능상에 문제가 발생할 수 있다. TypeScript에서 타입이 지정될 경우 이런 예외는 사용하지 않아도 된다.

3) 객체지향 프로그래밍 지원

- 인터페이스, 제네릭, 기존 ES6보다 확장된 클래스 등의 객체지향 프로그래밍을 지원한다. 이를 통해 복잡하고 큰 규모의 프로그램을 보다 쉽게 구현할 수 있도록 도와주며, 객체지향에 익숙한 개발자에게 보다 개발에 용이한 환경을 제공한다.

4) 통합개발환경(IDE) 지원

- MS에서 개발하고 지원하기 때문에 VS Code를 이용해 쉽게 환경을 구축할 수 있고, 개발하는데 많은 피드백을 받을 수 있다. 또한 정적 type을 지원함으로써 IDE를 이용한 고수준의 인텔리센스(IntelliSense)를 제공받을 수 있다. 이또한 대규모 프로젝트를 개발하는데 용이하게 사용될 수 있다.

 

[참고]

TypeScript 공식

Poiemaweb - TypeScript소개와 개발환경 구축

IT마이닝 - 정적언어(타입)과 동적언어(타입)

Typescript란

나무위키-TypeScript

728x90