본문 바로가기
강의 실습/한 입 크기로 잘라먹는 타입스크립트(TypeScript)

자바스크립트의 한계점과 타입스크립트

by Jint 2024. 6. 4.

한 입 크기로 잘라먹는 타입스크립트 - 자바스크립트의 단점과 타입스크립트

- 개요
* 이번 시간의 목표
자바스크립트에는 정확히 어떤 한계점이 있는가?
타입스크립트는 이 한계점을 어떻게 극복하는가?
타입스크립트가 다른 언어 대비 갖는 차별점은 무엇인가?

* 배경 지식이 하나 필요합니다
자바스크립트에 정확히 어떤 한계가 있고 왜 있는지 이해하기 위해서
앞으로의 타입스크립트 학습을 위해서

* 타입 시스템
모든 프로그래밍 언어는 타입 시스템을 가지고 있다.

- 타입 시스템이란?
값들을 어떤 기준으로 묶어 타입을 규정할 것인가? (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

댓글