TypeScript의 동작 원리

ws·2024년 8월 3일

프로그램 언어 동작

  • 컴퓨터는 우리가 작성한 코드를 실행하기 위해서 이 코드를 자기가 해석하기 쉬운 형태로 변환합니다. 이 과정을 컴파일이라고 합니다.

  • 그리고 컴파일 결과인 기계어를 실행하면 코드가 실행됩니다.

  • 코드를 컴파일하는 것이 컴파일러입니다.

  • 컴파일러는 코드를 AST 추상 문법 트리로 변환합니다. 코드의 공백이나 주석, 탭 등 코드 실행에 관계 없는 요소를 전부 제거하고 트리 형태의 자료구조에 코드를 쪼개 저장해 놓는 형태를 말합니다.

  • 컴파일러는 마지막으로 AST 를 바이트 코드로 변환하고 컴파일이 종료됩니다.

  1. 코드 → AST(추상 문법 트리)
  2. AST → 바이트코드
  3. 바이트 코드 실행

타입스크립트의 동작

  • 타입스크립트도 다른 언어와 마찬가지로 실행하려면 컴파일을 해야합니다.

  • 다른 언어와 동일하게 먼저 타입스크립트 코드를 AST 로 변환합니다.

  • 그 다음 AST 를 보고 코드 상에 타입 오류가 없는지 검사하는 타입 검사가 수행됩니다.

  • 이 때, 타입 오류가 있다면 타입 검사가 실패하고 컴파일이 중단됩니다.

  • 타입 오류가 없는 정상적인 코드라면 타입 검사를 성공적으로 통과하고 AST 를 자바스크립트 코드로 변환합니다.

  • 컴파일이 종료됩니다.

  • 타입스크립트를 컴파일하면 바이트코드가 만들어지는 것이 아니라 자바스크립트 코드가 만들어집니다.

  • 이렇게 만들어진 자바스크립트 코드를 노드나 웹브라우저로 실행하면 다른 언어들과 동일한 과정을 거쳐 컴파일되어 실행됩니다.

  • 중요한 것은 타입스크립트 코드의 컴파일 과정에 타입 검사가 포함되어 있기 때문에 타입스크립트 코드를 컴파일해서 생성한 자바스크립트 코드는 타입 검사를 통과한 자바스크립트 코드라는 것입니다. 타입 오류가 발생할 가능성이 낮은 안전한 자바스크립트 코드입니다.

  • 타입스크립트는 컴파일 결과 타입 검사를 거쳐 자바스크립트 코드로 변환되는데 이 때 코드에 오류가 있다면 컴파일 도중 실패하여 자바스크립트를 더 안전하게 사용하도록 검사하는 용도로 사용된다고 볼 수 있습니다.

  • 타입스크립트 컴파일
    1. 타입스크립트 코드 → 타입스크립트 AST
    2. 타입 검사
    3. 타입스크립트 AST → 자바스크립트 코드

  • 자바스크립트 컴파일 및 실행
    1. 자바스크립트 코드 → 자바스크립트 AST
    2. 자바스크립트 AST → 바이트 코드
    3. 바이트 코드 실행

0개의 댓글