한 입 크기로 잘라먹는 타입스크립트 - 자바스크립트의 단점과 타입스크립트
- 개요
* 이번 시간의 목표
자바스크립트에는 정확히 어떤 한계점이 있는가?
타입스크립트는 이 한계점을 어떻게 극복하는가?
타입스크립트가 다른 언어 대비 갖는 차별점은 무엇인가?
* 배경 지식이 하나 필요합니다
자바스크립트에 정확히 어떤 한계가 있고 왜 있는지 이해하기 위해서
앞으로의 타입스크립트 학습을 위해서
* 타입 시스템
모든 프로그래밍 언어는 타입 시스템을 가지고 있다.
- 타입 시스템이란?
값들을 어떤 기준으로 묶어 타입을 규정할 것인가? (Number 타입 / Boolean 타입 / String 타입)
코드의 타입을 언제 검사할지?
어떻게 타입을 검사할지?
→ 이런 규칙들을 모아둔 체계 : 언어의 타입 관련된 문법 체계
* 타입시스템
정적 타입 시스템 : 코드 실행 이전 모든 변수의 타입을 고정적으로 결정함 - 엄격하고 고정적인 시스템 ex) C, Java
동적 타입 시스템 : 코드를 실행하고 나서 그때 그때마다 유동적으로 변수의 타입을 결정함 - 자유롭고 유연한 시스템 ex) Python, JavaScript
JavaScript with 동적 타입시스템
변수의 타입들을 코드가 실행되는 도중에 결정함 = 변수의 타입을 우리가 직접 정의하지 않음
변수의 타입이 하나로만 고정되지 않음 = 아무 타입의 값이나 자유롭게 담을 수 있음
장점 : 매우 유연하다는 장점!!
단점 : Type Error 와 같은 런타임 오류 발생시 프로그램이 강제종료 되고 서비스가 마비될 수도 있음.
Java with 정적 타입 시스템
코드 실행 이전에 모든 변수의 타입을 결정함 = 모든 변수의 타입을 다 지정해 주어야 함
장점 : 코드실행 전 타입을 잘 못 사용한 경우 타입 오류를 보여줌.
단점 : 모든 변수에 타입을 다 지정해주어야 함 = 타이핑 양이 매우 증가한다!
타입스크립트의 독특한 타입 시스템
동적 타입 시스템 + 정적 타입 시스템
변수의 타입을 실행 전에 결정, 타입 오류를 실행 전에 검사함
// 타입스크립트
let a: number = 1;
a.toUpperCase(); // 오류 띄움
let a = 1; // 숫자값으로 초기화 되었으니 a 는 숫자 타입이겠구나 추론
a.toUpperCase(); // 오류 띄움
모든 변수에 타입을 일일이 지정할 필요 없음 = 점진적 타입 시스템 (Gradual Type System)
- 정리
정적 타입 시스템 : 코드를 실행하기 전에 정적으로 변수의 타입을 결정
(단점) 모든 변수에 일일이 타입을 지정해주어야 함. 타이핑 양 증가, 유연하지 못함.
동적 타입 시스템 : 코드를 실행하면서 유동적으로 변수의 타입을 결정
(단점) 코드의 타입 오류를 미리 검사할 수 없음. 예기치 못한 오류가 발생할 수 있다.
점진적 타입 시스템 : 실행 전 검사를 통한 타입 안정성 확보. 자동으로 변수의 타입을 추론함.
참고링크 : https://www.inflearn.com/course/%ED%95%9C%EC%9E%85-%ED%81%AC%EA%B8%B0-%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8#
한 입 크기로 잘라먹는 타입스크립트(TypeScript) | 이정환 Winterlood - 인프런
이정환 Winterlood | 문법을 넘어 동작 원리와 개념 이해까지 배워도 배워도 헷갈리는 타입스크립트 이제 제대로 배워보세요! 여러분을 타입스크립트 마법사🧙🏻♀️로 만들어드립니다., 프론
www.inflearn.com
'강의 실습 > 한 입 크기로 잘라먹는 타입스크립트(TypeScript)' 카테고리의 다른 글
타입스크립트 컴파일러 옵션 설정하기 (0) | 2024.06.14 |
---|---|
Hello TS World! (0) | 2024.06.10 |
타입스크립트의 동작 원리 (0) | 2024.06.07 |
타입스크립트를 소개합니다 (0) | 2024.06.03 |
개발 환경 준비하기 (0) | 2024.05.21 |
댓글