타입스크립트를 주제로 글을 안 쓰려고 했던 이유 중 하나로, 많이 들어본 말이지만 전혀 와닿지 않는 개념이었기 때문이다. 다른 블로그 글을 참조하기 전에 가장 먼저 위키백과에 등재되어 있는 정이를 살펴봤다.
"
타입스크립트(TypeScript)
는 자바스크립트의 슈퍼셋인 오픈소스 프로그래밍 언어이다. 마이크로소프트에서 개발, 유지하고 있으며 엄격한 문법을 지원한다. "
자바스크립트의 슈퍼셋인 프로그래밍 언어구나!
근데 슈퍼셋이 뭔지 몰라서 찾아봤다. 이 단어도 위키백과에서 찾아봤더니 subset
이라는 단어로 연결이 되었고 찾아보니 부분 집합
이라는 뜻이다. IT 용어사전에는 자바스크립트의 상위 언어
라고 적혀있다.
그러면 어쨌든 자바스크립트랑 어느 정도 공유하는 부분이 일치하는 프로그래밍 언어를 말하는 건가?
그래서 더 찾아보니 마이크로소프트가 개발하고... 프론트엔드 단에서도, 백엔드 단에서도 동시에 쓸 수 있는 언어이며 AngularJS
프레임워크에서 사용된 컴퓨터 언어이고...어쨌든 인기가 엄청 많은가보다.
자바스크립트도 널리 쓰이는데, 굳이 타임스크립트를 쓰는 이유는 뭘까?
자바스크립트의 슈퍼셋
위에서 한 말이지만, 자바스크립트를 기반으로 만들어진 언어이기 때문에 자바스크립트의 기본 문법이 베이스로 깔려있다. 거기에 타임스크립트만의 문법을 추가한 것이 타임스크립트의 매력인 것 같다. 이 특징으로 인해 자바스크립트로 작성한 유효한 코드는 확장자를 .js
에서 .ts
로 컴파일해 변환할 수 있다고 한다.
정적인 컴파일 언어
자바스크립트는 동적인 언어인데, 타임 스크립트는 정적이다. 이 말은 코드 작성 단계에서 오류를 발견하기 힘든 자바스크립트에 반해, 코드를 작성하면서 바로 오류를 확인하고, 타입을 결정하는 등 실행 속도가 빠르다는 장점이 있다!
다만 단점이 있는데, 코드 작성 시에 매번 타입을 결정하기 때문에 코드 작성이 번거로울 수 있고 코드량이 증가해서 컴파일 시간이 오래 걸린다.
객체 지향 프로그래밍 지원
이건... 설명 안하겠다. 클래스, 인터페이스, 상속, 모듈 등과 같은 객체지향 프로그래밍 패턴을 제공한다.
😮결론은?
코드 탐색에 용이하고 디버깅이 원활하게 진행될 수 있다는 특징이 있고, 자바스크립트와 호환이 가능해서 프로젝트의 일부분만 타입스크립트로 전환할 수도 있는 등 경제적이라 타입스크립트를 사용하는 개발자들이 늘고 있다!
그렇다는건 그런거고 아직 나는 안써서 모르겠다. 이렇게 쓰기만 해서는 무슨 말인지도 모르겠다. 역시 실제로 써봐야할 것 같은데...
한번도 안쓴 사람은 있지만 한번 밖에 안 쓴 사람은 없다는 그 대단한 언어를 나도 언젠간 쓰게 될까?