언어/TypeScript

프로그래밍 언어의 타입 시스템

calendar2 2024. 8. 6. 17:02
모든 프로그래밍 언어는 타입 시스템을 가지고 있다

타입 시스템이란?

  1.  언어에서 사용할 수 있는 여러 가지 값들을 어떤 기준으로 묶어 규정할 것인가?
  2. 코드의 타입을 언제 검사할지?
  3. 어떻게 검사할지?

위와 같이 프로그래밍 언어를 사용할 때 타입과 관련해서 지켜야할 규칙들을 모아둔 체계

타입 시스템의 종류

  • 정적 타입 시스템 : 코드 실행 이전 모든 변수의 타입을 고정적으로 결정함(엄격하고 고정적인 시스템)
    • C, Java
  • 동적 타입 시스템 : 코드를 실행하고 나서 그때 그때 마다 유동적으로 변수의 타입을 결정함(자유롭고 유연한 시스템)
    • Python, JavaScript
정적 타입 시스템의 경우 엄격한 검사로 실행 전에 오류를 찾아낼 수 있지만 전체적인 타이핑의 양이 너무 커진다.
반면, 동적 타입 시스템은 자유롬고 타이핑이 적지만 오류를 미리 검사할 수 없어 프로그램 실행 시 예상하지 못한 오류가 발생할 수 있다.

타입스크립트의 독특한 타입 시스템

타입스크립트는 동적 타입 시스템과 정적 타입 시스템의 특징을 같이 가지고 있다.

  1. 정적 타입 시스템처럼 타입 오류를 실행 전에 검사하면서
  2. 동적 타입 시스템처럼 변수의 타입을 실행 전에 결정한다.

그래서, 타입스크립트의 타입 시스템을 점진적 타입 시스템(Gradual Type System)이라고 부른다.

정리

정적 타입 시스템 점진적 타입 시스템 동적 타입 시스템
- 특징
1. 코드를 실행하기 전에 정적으로 변수의 타입을 결정

- 단점
1. 모든 변수에 일일이 타입을 지정해주어야 함
2. 타이핑의 양 증가
3. 유연하지 못함
- 특징
1. 실행 전 검사를 통한 타입 안정성 확보
2. 자동으로 변수의 타입을 추론함

- 특징
1. 코드를 실행하면서 유동적으로 변수의 타입을 결정

- 단점
1. 코드의 타입 오류를 미리 검사할 수 없음
2. 예기치 못한 오류의 발생 가능성 높음
C, Java 등 TypeScript Python, JavaScript

참고자료

[본 게시물은 파트너스 활동의 일환으로 소정의 수수료를 받을 수 있습니다.]

한 입 크기로 잘라먹는 타입스크립트(TypeScript):

 

한 입 크기로 잘라먹는 타입스크립트(TypeScript)| 이정환 Winterlood - 인프런 강의

현재 평점 5점 수강생 12440명인 강의를 만나보세요. 문법을 넘어 동작 원리와 개념 이해까지 배워도 배워도 헷갈리는 타입스크립트 이제 제대로 배워보세요! 여러분을 타입스크립트 마법사🧙

www.inflearn.com