타입스크립트란?

growdeveloper ㅣ 2021. 8. 7. 21:15

타입스크립트란 무엇인가?

세 종류의 자바스크립트

자바스크립트는 현제 세 가지 종류가 있습니다. 웹 브라우저에서 동작하는 표준 자바스크립트인 ES(ECMAScript 5)와 2015년부터 매년 새로운 버전을 발표하는 ESNext, 그리고 ESNext에 타입(type) 기능을 추가한 타입스크립트(TypeScript)입니다. 

 

ESNext는 ES5의 모든 문법을 포함하고, 타입스크립틑 ESNext의 모든 문법을 포함합니다. 따라서 타입스크립트로 개발했더라고 타입 기능을 사용하지 않았다면 ESNext 소스나 마찬가지 입니다.

 

자바스크립트의 공식 표준은 ECMAScript(줄여서 ES)입니다. 2009년 발표된 ES5 버전이 있었는데 2015년에 발표된 ES6 버전에서 큰 변화가 있었습니다. 그래서 ES6 이후 버전을 통틀어 가리킬 때는 새로운 자바스크립트 라는 뜻에서 ESNext라고 합니다.
그리고 2015년에 ECMAScript 공식 버전 표기법이 바뀌었습니다. ES6부터는 발표 연도를 붙여 'ECMAScript 2015(줄여서 ES2015)' 처럼 부르기로 했습니다, 또한, 1년 주기로 새로운 버전을 발표하기로 해서 2019년 말 현재 ECMAScript 2019까지 나왔습니다. 따라서 이 책에서 ESNext라고 하면 ECMAScript 2015-ECMAScript 2019까지를 의미합니다.

 

타입스크립트는 누가 만들었나?

타입스크립트 마이크로소프트가 개발하고 유지하고 있는 오픈소스 프로그래밍 언어로 2012년 말 처음 발표되었습니다. 타입스크립트는 C# 언어를 창시한 아네르스 하일스베르(Andres Hejlsberg)가 핵심 개발자로 참여하고 있습니다. 구글의 Angular.js 팀이 앵귤러 (Angular) 버전 2를 만들면서 타입스크립트틀 채택한 이후부터 널리 알려졌습니다. 요즘은 앵귤러의 경쟁 프레임워크인 리액트(React.js)나 뷰 (Vue.js)조차도 타입스크립트를 사용해 개발 되고 있습니다.

 

자바스크립트에 타입 기능이 있으면 좋은이유

오늘날 소프트웨어는 상당히 복잡하므로 보통 여러 사람이나 팀이 협력해 하나의 제품을 개발합니다.

그런데 이런 상황에서는 항상 코드를 작성한 쪽과 사용하는 쪽 사이에 커뮤니케이션이 중요합니다.

 

예를 들어 A 개발자가 다음과 같은 코드를 만들었 다고 가정해 봅시다.

function makePerson(name, age) {}

 

B라는 개발자가 이 코드를 이요하려고 다음 코드를 만들어 실행했을 때 오류가 발생했다면 B개발자는 오류의 원인이 무엇인지 찾기가 어렵습니다.

makePerson(32,"Jack")

 

그런데 처음 코드를 다음처럼 타입스크립트의 타입 기능을 이용해 구현했다면 이러한 문제는 발생하지 않았을 것입니다.

function makePerson(name: string, age: number) {}

 

그리고 타입스크립트 컴파일러는 문제의 원인이 어디에 있는지 친절하게 알려주므로 코드를 좀 더 수월하게 작성할 수 있습니다.

 

트랜스파일

ESNext 자바스크립트 소스코드는 바벨(Bable)이란느 트랜스파일러(transpiler)를 거치면 ES5 자바스크립트 코드로 변환됩니다. 바벨과 유사하게 타입스크립트 소스코드는 TSC(TypeScript compiler)라는 트랜스파일러를 통해 ES5 자바스크립트 코드로 변환됩니다. 여기서 트랜스파일러나, 어떤 프로그래밍 언어로 작성된 소스코드를 또 다른 프로그래밍 언어로 된 소스코드로 바꿔주는 프로그램을 말합니다. 트랜스컴파일러는 텍스트로 된 소스코드를 바이너리 코드로 바꿔주는 컴파일러와 구분하기 위해 생긴 용어 입니다