IT

타입스크립트(Typescript)가 뭔지 정확히 알고 싶다

생각파워 2023. 2. 7. 23:38

프로젝트에 타입스크립트를 처음 사용해 봤습니다. 자바스크립트와 비슷하다고 해서 별도로 공부를 하지 않았는데, 소스를 보니 타입스크립트를 모르고서는 소스분석이 불가능했습니다. 그래서 앞으로 몇 번에 걸쳐 타입스크립트를 세세하게 알아보려고 합니다. 몇 번으로 정리가 될지는 잘 모르겠습니다. 어쨌든 열심히 해 보겠습니다. 

 

타입스크립트는 스택 오버플로우에서 실시한 2022 개발자 설문조사에서 가장 사랑하는 언어 4위에 랭크된 언어입니다. 73.46%의 개발자가 타입스크립트를 좋아하고, 계속 사용할 것이라고 답했습니다.

그만큼 폭넓은 사랑을 받고 있습니다. 타입스크립트가 왜 이렇게 사랑을 받고 있고, 강점은 무엇인지 알아보도록 하겠습니다. 

탄생

프런트엔드 기술이 자바스크립트로 정리돼 가고 있습니다. 자바스크립트가 가볍고 호환성이 좋긴 하지만, 여러 가지 문제점을 가지고 있습니다. 자바스크립트는 실행 시 오류를 체크하는 동적타입의 언어이기 때문에 사전에 오류를 잡을 수 없다는 단점을 가지고 있습니다. 게다가 변수 타입에 관대하기 때문에 그와 관련하여 갖가지 문제들 또한 많이 발생합니다. 문자와 숫자를 더해도(+) 에러가 발생하지 않습니다. 개발자들은 변수의 타입을 강하게 체크하고, 컴파일을 통한 사전 체크를 통해 에러를 잡고자 했습니다. 그래서 탄생한 것이 타입스크립트입니다. 타입스크립트는 2012년 마이크로소프트가 발표했습니다. 현재 4.9 버전을 주로 사용하고, 5.0 버전이 베타테스트 중입니다.

타입스크립트 공식사이트 참조

 

자바스크립트와의 관계

 타입스크립트는 자바스크립트의 자식으로 자바스크립트 기능을 모두 포함하고 있고, 조금 더 확장된 기능들을 가집니다. 이것을 한마디로  자바스크립트의 슈퍼셋이라고 표현을 합니다. 타입스크립트는 실행 전 자바스크립트로 변환됩니다. 그래서 자바스크립트와 완전히 다른 기능을 가질 순 없습니다. 타입스크립트 공식 사이트를 보면 타입스크립트를 이렇게 정의했습니다.

TypeScript is JavaScript with syntax for types.
타입스크립트는 타입에 대한 문법을 가진 자바스크립트다.

 

자바스크립트보다 더 나은 점 3가지

  1. 타입스크립트는 사전에 타입을 체크하여, 실행 시 오류를 줄입니다. 실제 연구에서 자바스크립트 버그의 15% 정도를 타입스크립트로 사전에 잡아낼 수 있었다고 합니다.
  2. 강력한 생태계를 가지고 있습니다. 먼저 자바스크립트를 사용하는 모든 곳에 타입스크립트를 사용할 수 있습니다. 자바스크립트를 타입스크립트로 변환하는 것도 적극적으로 권장하고 있습니다. VSC(비주얼 스튜디오 코드)와 같은 에디터에서 플러그인으로 많은 확장기능을 제공하고 있다는 것도 강점입니다.
  3. 객체지향언어를 지원합니다. 클래스, 인터페이스, 상속과 같은 객체지향 패턴을 지원합니다. 객체지향 패턴을 잘 이해하고 사용하는 사람에게 도움이 될 것 같습니다.

 

타입스크립트 실행

자바스크립트는 브라우저나 node에서 바로 실행시킬 수 있는 반면 타입스크립트는 코드 작성 후 자바스크립트로 변환을 해서 실행을 시킵니다. 자바스크립트 컴파일 도구인 babel 같은 도구를 사용합니다. babel은 최신 자바스크립트 문법을 대부분의 브라우저에서 실행시킬 수 있는 자바스크립트 문법으로 변환시켜 줍니다. 최신 문법을 해석할 수 없는 브라우저가 있을 수 있으니까요. 실행방법에 있어서는 전환기에 있지 않나 생각합니다. 인간은 더 편해지려고 노력하니까요. 더 나은 실행방법이 나타나기를 기원해 봅니다.

 

 

참고자료

타입스크립트 공식 사이트 : https://www.typescriptlang.org/

스택오버플로우 2022 개발자 설문조사 : https://survey.stackoverflow.co/2022/

타입스크립트 리포트(삼성 SDS) : https://www.samsungsds.com/kr/insights/typescript.html 

반응형