2. FrontEnd/TypeScript / / 2023. 5. 30. 18:33

[TS] 타입스크립트 동작 원리

대부분의 프로그래밍 언어는 사실 컴퓨터보단 인간에게 더 친화적이다. 

컴퓨터는 인간과는 달리 바이트코드나 기계어, 이진수 같은 아주 단순한 형태의 언어를 기반으로 동작한다

따라서  프로그래밍 언어를 컴퓨터가 바로 이해하고 실행할수는 없다.

 

컴파일 = 컴퓨터는 우리가 작성한 코드를 실행하기 위해서 해석하기 쉬운 형태로 변환 하는 과정

 

우리가 작성한 프로그래밍 언어로 작성한 코드를 컴파일하면 코드가 컴퓨터가 이해할 수 있는 기계어 같은 형태로 변환된다

컴퓨터가 이걸 읽어서 실행하고 결과적으로 코드가 실행됨

 

자바나 자바스크립트 프로그래밍 언어를 컴파일하면 바이트코드(기계어) 형식으로 변환된다

 

컴파일러 동작 과정 

우선, 컴파일러는 프로그래밍언어를 바로 바이트코드로 변환하는것이 아니라 그 전에 추상문법트리(AST)라는 특별한 형태로 먼저 변환한다

추상문법트리(AST) : 코드의 공백이나 주석 탭 등의 코드 실행에 관계없는 요소들은 전부 제거하고 트리형태의 자료구조에 코드를 쪼개서 저장해놓은 형태

 

타입스크립트의 동작 과정

1. 프로그래밍언어 -> AST

2. ST를 바이트코드로 변환하는게 아니라 이 AST를 보고 코드 상에 타입 오류가 없는지 검사하는타입 검사가 수행

만약 이때 코드에 타입 오류가 있다면 타입 검사가 실패하고 컴파일이 중단됩니다.

만약 정상적인 코드라면 타입 검사를 성공적으로 통과하고 그 다음에는 AST를 바이트코드가 아니라 ‘자바스크립트 코드’로 변환됩니다.

 

대부분의 프로그래밍 언어를 컴파일하면 바이트코드가 만들어지는 것과는 다르게, 타입스크립트를 컴파일하면 자바스크립트 코드가 만들어진다

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

 

타입스크립트에 작성한 타입 관련 코드들은 결국 자바스크립트로 변환될 때 사라지게 되어 프로그램 실행에 영향을 미치지는 않는다

결국 타입스크립트는 컴파일 결과 타입 검사를 거쳐 자바스크립트 코드로 변환되는데 이때 만약 코드에 오류가 있다면 컴파일 도중 실패하게 되므로 자바스크립트를 보다 더 안전하게 사용하는 미리 한번 코드를 검사하는 용도로 사용된다

728x90

'2. FrontEnd > TypeScript' 카테고리의 다른 글

[TS] JS의 한계점, TS 차이점  (0) 2023.05.26
[TS] TypeScript의 탄생  (5) 2023.05.23
[TS] Union Type, Literal Type, Type Aliases  (0) 2022.08.31
[TS] 타입스크립트란?  (0) 2022.08.25
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유