티스토리 뷰

1. 타입스크립트 소개

  • 타입스크립트는 자바스크립트의 확장판
  • 자바스크립트의 기본적인 모든 문법을 포함함
  • 자바스크립트를 더 안전하게 사용할 수있도록 타입 관련 기능들을 추가한 언어

 

2. 자바스크립트의 단점과 타입스크립트

(1) 자바스크립트의 한계

자바스크립트의 한계를 알아보기 이전에 한 가지, 타입시스템에 대해서 알고 가자.

타입시스템

  • 언어의 타입 관련된 문법 체계
  • 값들을 어떤 기준으로 묶어 타입을 규정할 것인지, 코드 타입을 언제 검사할 것인지, 어떻게 타입을 검사할 것인지 등의 규칙을 모아둔 체계
  • 모든 프로그래밍 언어는 타입 시스템을 가지고 있음

정적 타입시스템

  • 코드 실행 이전 모든 변수의 타입을 고정적으로 결정
  • 엄격하고 고정적인 시스템
  • 모든 변수에 일일이 타입을 지정해야 함
  • 타이핑양 증가, 낮은 유연성
  • c, java

동적 타입시스템

  • 코드를 실행하고 나서 그때 그때 마다 유동적으로 변수의 타입을 결정
  • 자유롭고 유연한 시스템
  • 파이썬, 자바스크립트

자바스크립트 동적 타입시스템의 한계

  • 변수의 타입이 하나로만 고정되지 않기에
  • 아무 타입의 값이나 자유롭게 담을 수 있음
let a = "hello"; // 문자열
a = 19970107; // 숫자

그러나 런타임(실행) 이전에 타입 관련 오류를 잡아줄 수 없기에 예기치 못한 오류가 발생할 수 있음. 너무 자유로운 것도 문제라는 것

(2) 타입스크립트의 타입 시스템

  • 동적 타입시스템정적 타입시스템을 혼합한 독특한 타입시스템
  • 변수의 타입을 실행 이전에 검사하여 타입 안정성을 확보
  • 자동으로 변수의 타입을 추론하기 때문에 모든 변수에 타입을 일일이 지정할 필요가 없음
  • 점진적 타입 시스템(Gradual Type System) : 동적 타입시스템의 불안정성을 해결하면서도 정적 타입시스템의 귀찮음도 해결해주는 타입시스템

 

3. 타입스크트의 동작 원리

대다수의 프로그래밍 언어의 동작원리

  • 컴파일(Compile) : 사람이 작성한 프로그래밍 언어를 컴퓨터가 이해하기 위운 기계어 형태로 변환하여 컴퓨터에게 전달하는 과정
  • 컴파일 과정: 자바스크립트 코드 -> AST(추상 문법 트리) -> 바이트 코드

타입스크립트의 컴파일 과정

  • 타입스크립트 코드 -> AST(추상 문법 트리) -> 타입 검사
    • 검사 실패 -> 컴파일 종료
    • 검사 성공 -> 컴파일 결과로 자바스크립트 코드 반환
      • 타입과 관련된 코드들은 컴파일 결과 모두 사라짐
      • 이후 자바스크립트의 컴파일 과정 수행

본 포스팅은 인프런 한 입 크기로 잘라먹는 타입스크립트 강의를 기반으로 작성되었습니다. 사용된 이미지들은 모두 위 강의에서 가져왔습니다. 문제시 알려주세요.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함