원래 자바스크립트는 웹 상에서 정말 간단한 기능을 구현하기 위해 개발되었기 때문에 간결하게 개발하기 편하도록 만들어졌다. 그래서 타입 정의를 하지 않아도 되고, 간단하게 처리할 수 있다는 장점이 있었다.
하지만 node.js가 등장하면서 자바스크립트가 웹 뿐만 아니라 앱, 데스크탑 프로그램 등 모든 환경에서 구동 가능해졌다.
자바스크립트가 너무 많이 발전해버리면서, 간단한 기능 개발만을 위해 존재했던 언어가 복잡한 기능을 구현해야 하는 상황이 발생한 것이다. 자바스크립트는 버그 발생 가능성이 높기 때문에 오류를 처리해줄 수 있는 언어가 필요해졌고, 그렇게 타입스크립트가 등장하였다.
과거 자바스크립트 : 웹 상에서 간단한 동작만을 위한 언어
but node.js의 등장으로 복잡한 구현 필요
-> 버그 발생 가능성을 낮추기 위한 언어 (typescript) 등장
타입스크립트 : 자바스크립트를 더 안전하게 사용할 수 있도록 타입 관련 기능들을 추가한 언어
타입 시스템 : 언어의 타입 관련된 문법 체계
let a = "happyhyep"
a = 3
위의 코드에서 1줄은 문자열, 2줄은 int형 -> 정적타입시스템이라면 문제 발생
but 자바스크립트에서는 그냥 실행해줌
-> 유연함 but 오류 발생 가능성 up
이 내용은 프로그래밍언어구조론 과목에서 배웠으므로, 블로그 회고 메뉴에 있는 정리본 참고
: 정적 타입 시스템과 동적 타입 시스템을 적절히 혼합하여 사용한 점진적 타입 시스템

- 실행 전 검사를 통한 타입 안정성 확보 (동적 타입 시스템 단점 보완)
- 자동으로 변수의 타입 추론 (정적 타입 시스템 단점 보완)
