1. 대다수의 프로그래밍 언어는 어떻게 동작할까?
대부분의 프로그래밍 언어는 사람에게 더 친숙하다. 컴퓨터는 이진수, 바이트 코드 등을 사용하기 때문에 영어의 문법과 같은 언어를 컴퓨터는 바로 이해하기는 어렵다.
그렇기에 컴퓨터가 이해하기 쉬운 형태로 프로그래밍언어를 기계어로 변환한다.
이를 컴파일(Compile)이라고 한다.
코드를 기계어로 컴파일하는 친구를 컴파일러라고 한다.
2. JavaScript 컴파일 과정
Javascript를 컴파일하게 되면 바이트 코드로 컴파일된다.
Javasciprt는 바이트 코드로 컴파일되기 전에 AST(추상 문법 트리)로 먼저 변환되게 되는데, AST란 무엇일까?
위 그림과 같이, 주석, 공백, 탭과 같은 관계없는 코드들은 모두 제거하고,
트리형태의 자료구조에 코드들을 블록처럼 정리해 놓은 것을 AST라고 한다.
사람과 친숙한 프로그래밍 언어인 Javascript를 컴퓨터와 친숙한 이진수 또는 바이트코드로 컴파일하기 위해서는 Javasciprt를 AST로 변환된 후 바이트 코드로 변환하게 된다.
3. TypeScript 컴파일 과정
TypeSciprt는 컴파일 시 바이트코드로 변경되는 것이 아닌, JavaScript로 변환이 먼저 되고, JavaScript 를 컴파일하여 실행하게 된다.
가장 중요한 부분은 AST에서 JavaScript로 넘어가기 전에 타입 검사가 이루어진다는 것이다.
타입 검사를 하는 경우에 잘못된 방식으로 코드를 작성한 경우 컴파일이 종료되고, 오류를 표현해 준다.
여기서 추가적으로
컴파일 과정에서 TypeScript가 타입검사를 성공하면 JavaScript로 변경되게 되는데, JavaScript로 변환하게 되면, 타입과 관련된 코드들은 컴파일 결과 모두 사라지게 된다.
위 말은 즉슨 타입스크립트에서 지정하는 타입들은 타입검사를 위해 작성될 뿐, 프로그램 실행자체에는 영향을 미치지 않으며 JavaSciprt와 코드의 의미적으로는 동일하다는 것을 뜻한다.
TypeScript는 컴파일 시에 타입검사를 한 후 JavaScript로 변환된다.
TypeScript는 타입 오류를 방지하고자 더 엄격히 타입을 검사하는 타입시스템을 위해 사용하는 언어이다.
타입스크립트 환경세팅이 궁금하다면, 다음 포스팅을 참고 바란다.
- 이 포스팅은 '이정환 - 한 입 크기로 잘라먹는 타입스크립트 (인프런)' 강의를 참고하여 작성되었습니다.
'TypeScript' 카테고리의 다른 글
[TypeScript] 타입스크립트 배열과 튜플 (배열과 튜플의 차이점) (0) | 2024.09.25 |
---|---|
[TypeScript] 타입스크립트 기본 타입 (원시타입과 리터럴타입) (0) | 2024.09.24 |
[TypeScirpt] 타입스크립트 컴파일러 옵션 설정 (0) | 2024.09.21 |
[TypeScript] 타입스크립트 환경 세팅/ 설치 방법 (0) | 2024.09.20 |
[TypeScript] 타입스크립트란? (+ 타입스크립트의 독특한 타입 시스템) (0) | 2024.09.20 |