1. 타입스크립트
타입스크립트는 오픈소스로 공개되어 있다.
타입스크립트는 "더는 피할 수 없는 대세가 되어버린 타입스크립트"일 정도로 굉장히 인기가 많다.
1. 타입스크립트란?
타입스크립트는 자바스크립트의 확장판이라고 할 수 있으며, 자바스크립트를 더 안전하게 사용할 수 있도록 "타입 관련 기능들을 추가한" 언어이다.
Q. 타입스크립트는 왜 배워야 하는 것일까?
A. 아이러니하게도 자바스크립트가 인기가 많기 때문이다.
- js는 처음에 웹페이지에서 간단한 버튼을 눌렀을 때와 같이 사용자와 상호작용하는 기능을 담당하는 언어로써, 유연한 문법과 자유로움이라는 장점이 존재했다. (버그 발생 가능성 높음)
하지만, nodeJS의 등장으로 웹에서만 작동하는 것이 아닌 다양한 곳에서 활용되기 시작하면서, 더 엄격한 JS가 필요하게 되었다.
-> TypeScript의 등장 ( 버그 발생 가능성이 낮은, 더 엄격한 )
2. 자바스크립트의 한계점과 타입스크립트
1. 타입시스템이란?
모든 언어는 타입시스템을 가지고 있다. 타입시스템이란 언어의 타입 관련된 문법 체계를 뜻한다. 타입시스템에서 고려해야 할 항목은 다음과 같다.
- 값들을 어떤 기준으로 묶어 타입을 규정할 것인가?
- 코드의 타입을 언제 검사할지?
- 어떻게 타입을 검사할지?
2. 타입 시스템 종류
타입 시스템에는 2가지 종류가 존재한다.
- 정적 타입 시스템: 엄격하고 고정적인 시스템
- ex) C, JAVA - 동적 타입 시스템: 자유롭고 유연한 시스템
- ex) Python, Javascript
동적 타입 시스템은 변수의 타입이 하나로만 고정되지 않고, 아무 타입의 값이나 자유롭게 담을 수 있다.
위와 같은 경우 실행이 안되어야 한다.
하지만 JS의 경우 동적타입시스템으로 오류는 발생하지만, 일단 실행이 된다는 굉장히 큰 단점을 가지고 있다!
-> 이런 부분이 지금은 오류를 찾기 쉽지만 코드의 크기가 커지게 되면, 오류를 찾는데 굉장히 힘들어질 수 있다.
정적 타입시스템의 경우, 모든 변수의 타입을 지정해야 하기 때문에 코드의 양이 증가하고, 귀찮다는 단점이 있다.
3. 타입스크립트의 독특한 타입 시스템
- 동적 타입 시스템 + 정적 타입 시스템
동적 타입 시스템 + 정적 타입 시스템 변수의 타입을 실행 전에 결정 모든 변수에 타입을 일일이 지정할 필요 없게 된다.
타입스크립트는 타입 오류를 실행 전에 검사하는 방식을 사용한다.
변수의 타입을 지정하여 사용할 수 있지만, 모든 변수에 타입을 일일이 지정할 필요 없이 사용도 가능한 타입 시스템을 점진적 타입 시스템(Gradual Type System)이라고 한다.
Java는 정적 타입 시스템을 사용함으로써 코드를 실행하기 전에 모든 변수에 타입을 지정하게 되어 코드의 양이 증가하며 유연하지 않은 단점이 존재한다.
Js의 경우 동적 타입 시스템으로 타입을 설정하지 않아도 유연하게 타입을 지정하지만 타입에 관련한 오류가 발생한 경우, 일단 실행이 되기 때문에 코드가 방대하다면, 오류를 찾기 매우 힘들다는 단점이 치명적이다.
타입스크립트는 이 2가지 타입의 단점을 모두 극복하는 방안인 점진적 타입 시스템을 사용하게 된다.
Q. 타입 스크립트는 왜 쓰는 걸까?
A. JS의 타입시스템 한계점을 극복하기 위해서!
타입스크립트 동작원리가 궁금하다면, 다음 포스팅을 참고하길 바란다.
- 이 포스팅은 '이정환 - 한 입 크기로 잘라먹는 타입스크립트 (인프런)' 강의를 참고하여 작성되었습니다.
'TypeScript' 카테고리의 다른 글
[TypeScript] 타입스크립트 배열과 튜플 (배열과 튜플의 차이점) (0) | 2024.09.25 |
---|---|
[TypeScript] 타입스크립트 기본 타입 (원시타입과 리터럴타입) (0) | 2024.09.24 |
[TypeScirpt] 타입스크립트 컴파일러 옵션 설정 (0) | 2024.09.21 |
[TypeScript] 타입스크립트 환경 세팅/ 설치 방법 (0) | 2024.09.20 |
[Typesciprt] 타입스크립트 동작원리 (1) | 2024.09.20 |