[한입] 타입스크립트 소개

TK·2023년 12월 4일
0

[강의] 한입 시리즈

목록 보기
2/59

타입스크립트에 대한 정보

  • 2012년 마이크로소프트 개발자이자 C#의 창시자인 앤더스 하일스버그가 만듦

  • 오픈소스로 공개되어 있음

  • 현재 굉장히 인기가 많음

  • 공신력 있는 기관(STATE OF JS)에서 100명중 89명은 ts를 사용중이라고 밝힘

  • 타입스크립트는 자바스크립트의 확장판임


타입스크립트 사용 이유

  • 자바스크립트는 원래 아주 간단한 상호작용 정도를 처리하기 위해 개발되었음

  • Node.js가 등장하면서 웹에서만 실행되던 자바스크립트를 어떤 프로그램에서든 이용할 수 있도록 해줌 → 자바스크립트의 한계가 사라짐

    Node.js

    • Node.js는 JavaScript를 서버에서도 사용할 수 있도록 만든 프로그램이다.
    • Node.js는 V8이라는 JavaScript 엔진 위에서 동작하는 자바스크립트 런타임(환경)이다.
    • Node.js는 서버사이트 스크립트 언어가 아니다. 프로그램(환경)이다.
    • Node.js는 웹서버와 같이 확장성 있는 네트워크 프로그램을 제작하기 위해 만들어졌다.


      출처: 블로그
  • 자바스크립트의 활용도가 높아질수록 자바스크립트의 유연함이 버그발생 가능성을 높임

  • 이런 단점을 극복하기 위해 안정성 확보 하기 위한 타입이라는 안전장치를 추가함

  • (요약) 타입스크립트는 자바스크립트의 한계를 극복하기 위해 등장


타입시스템

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

  • 값들을 어떤 기준으로 묶어 타입을 규정할 것인지 결정

  • 코드의 타입을 언제 검사할지 결정

  • 어떻게 타입을 검사할지 결정

정적타입시스템동적타입시스템
코드 실행 이전 모든 변수의 타입을 고정적으로 결정함코드를 실행하고 나서 그때 그때 마다 유동적으로 변수의 타입을 결정함
엄격하고 고정적인 시스템자유롭고 유연한 시스템
C, JavaPython, JavaScript

자바스크립트: 동적타입시스템

  • 변수의 타입들을 코드가 실행되는 도중에 결정함 → 변수의 타입을 우리가 직접 정의하지 않음

  • 변수의 타입이 하나로만 고정되지 않음 → 아무 타입의 값이나 자유롭게 담을 수 있음

  • 이로 인해 다음과 같은 에러가 발생함 (숫자타입은 다음 함수에 적용될 수 없음) (동작은 일어남)

  • 복잡한 코드에서 위와 같은 일이 발생한다면 그 원인을 곧바로 찾기 어려움

  • 에러가 날 코드라면 실행이 되지 않도록 방지하여야 함


JAVA: 정적타입시스템

  • 아래와 같이 코드 실행 전 에디터 상에서 오류를 나타냄
  • (단점) 모든 변수에 타입을 다 지정해주어야 함 → 타이핑 양이 매우 증가함

타입스크립트: 동적+정적타입시스템

  • 변수의 타입을 실행 전에 결정함
  • 타입 오류를 실행 전에 검사함
  • 모든 변수에 타입을 일일이 지정할 필요 없음 → 점진적 타입 시스템 (Gradual Type Sysytem)
  • (요약) 타입스크립트는 동적타입시스템의 안정성문제를 해결하며서도 정적타입시스템의 귀찮음을 해결

정리


강의 출처: 한 입 크기로 잘라먹는 타입스크립트

profile
쉬운게 좋은 FE개발자😺

0개의 댓글