1-1. 타입스크립트를 소개합니다
TS 소개와 인기
Anders Hejlsberg라는 C#의 창시자가 개발. 따라서 비슷한 점들이 있다.
오픈소스이고 많은 개발자들이 현재에도 참여하고 있기 때문에 유망하다.
실제로 JS 프로그래머들, 특히 FE개발자 사이에서 인기가 (매우) 많다. 피할 수 없는 대세라고 볼 수 있다.
채용공고의 자격요건이나 우대사항에도 포함되어 있는 경우가 많다.
TS는 JS의 확장판이다
TS는 JS의 superset으로, JS와 별개의 언어가 아니라 확장판이다.
JS를 더 안전하게 사용할 수 있도록, 타입 관련 기능들이 추가된 언어이다.
당연히 JS에 있는 모든 기능은 사용이 가능하다.
JS 대신 TS를 굳이 사용해야 하는 이유 (TS의 등장 배경)
JS는 이정도의 인기와 범용성을 예측하여 설계된 언어가 아니다.
웹 브라우저에서 작동하도록 고안되었고, 사용자와 간단한 상호작용을 처리하기 위해 만들어졌다.
JS는 따라서 유연한 문법으로 자유롭고 간결하게 코드를 작성할 수 있도록 만들어 졌으나, 그때문에 버그 발생 가능성이 높다는 약점이 있다.
Node.js의 출현
node는 JS의 런타임 환경, 즉 “JS 구동기”라고 볼 수 있다.
node 덕분에 개발자들은 이제 웹 앱 뿐만 아니라, 무엇이든지 JS로 만들수가 있어졌다. (e.g. 웹 서버, 모바일 앱, 데스크탑 앱)
즉 JS의 한계가 사라짐에 따라 복잡하고 대규모의 애플리케이션을 JS로 만들기 시작했고, 이에 따라 안정성이 부족하다는 JS의 취약점이 더 부각되게 되었다.
즉 TS는 더 복잡한 상황, 대규모 프로그램 개발 시에 더 안전하게 JS를 사용할 수 있도록 고안된 JS의 확장판이라고 볼 수 있다.
1-2. 자바스크립트의 한계점과 타입스크립트
Type System
모든 언어는 타입 시스템을 가지고 있다.
타입 시스템이란
값들을 어떤 기준으로 묶어 타입을 규정할 것인지
코드의 타입을 언제 검사할지
어떻게 타입을 검사할지
… 이러한 언어의 타입과 관련된 문법 및 규칙들을 모아둔 체계라고 할 수 있다.
Static Typing System vs. Dynamic Typing System
타입 시스템은 크게 정적 타이핑과 동적 타이핑 두가지로 분류할 수 있다.