[TypeScript # 1] 컴파일러와 tsc

Duboo·2023년 8월 23일
0

TypeScript

목록 보기
2/2
post-thumbnail

컴파일러

  • 특정 프로그래밍 언어가 정적 언어로서의 정체성을 유지할 수 있게 하는 도구

  • 프로그래밍 언어로 작성된 소스 코드 👉 다른 프로그래밍 언어로 변환하는 도구

    • 이러한 변환 과정에서 컴파일러는 소스 코드의 구문과 구조를 검사하여 문제가 없는지 확인
    • 이를 통해 개발자가 작성한 코드에 오류가 있는 경우 미리 알려주어 문제를 해결할 수 있다.

tsc - TypeScript 컴파일러 | TypeScript 파일을 JavaScript로 변환 시켜주는 역할

결국은 TypeScript도 JavaScript로 변환되어야 코드를 실행할 수 있기 때문에 컴파일러가 필요하다.


의문점🤔

TypeScriptJavaScript로 변환되어서 실행한다는데
JavaScript 자체는 컴파일이 필요가 없는건가?

  • 정적 언어(컴파일 언어) : C, C#, C++, Java...
  • 동적 언어(인터프리터 언어) : JavaScript, Ruby, Python...

대표적인 정적 언어인 C 언어로 작성된 코드의 경우 컴퓨터가 이해하기 위해서는 기계어로 변환이 되어야하기 때문에 컴파일러가 필요합니다. 따라서 컴파일 언어라고 부르기도 합니다.

반면 동적 언어 중 하나인 JavaScript의 대표적인 런타임 환경브라우저(Chrome, Firefox, Safari...) 그리고 Node.js가 있습니다.

Chorme 혹은 Node.js를 JavaScript로 실행할 때는 V8 엔진이 코드를 해석 및 실행합니다.

  • 브라우저 별로 실행 엔진이 다르다. Ex) Firefox는 SpiderMonkey

정리하자면

  • 정적 언어는 기계어로 변환이 되어야 컴퓨터가 이해할 수 있습니다.
  • 동적 언어는 엔진이 코드를 할 줄씩 실행하면서 동적으로 해석합니다.

컴파일러의 근본적인 역할

  • 타입 검사를 해주는 것은 컴파일러

    • TypeScript 컴파일러는 소스 코드의 정적 타입 검사를 수행
    • 이를 통해 개발자는 코드에서 타입 관련 오류를 미리 발견하고 수정할 수 있게 되는 것
      • ❗컴파일러가 없다면 위와 같은 에러를 발견하지 못하고 런타임 에러가 발생
  • 컴파일러는 코드 변환도 해준다

    • 타입스크립트 컴파일러인 tscTypeScript 👉 JavaScript 코드 변환을 해준다.
    • 컴파일러를 이해하면 변환된 코드가 어떻게 실행되는지 예측할 수 있고, 이는 디버깅 과정에서 큰 도움이 된다.
  • 에러 메시지 해석할 때 도움을 받을 수 있다.

    • 컴파일러는 소스 코드에서 문제가 발견되면 에러 메시지를 출력한다.
      • 컴파일러를 이해하면 에러 메시지를 보다 정확하게 해석하고 문제를 신속하게 해결할 수 있다.
  • 최적화에 유리하다.

    • 비효율적으로 작성된 코드를 효율적으로 실행될 수 있게 내부적으로 바꿔준다.
      • 코드가 최적화되면 전반적인 어플리케이션 실행 시간이 더 빨라지는 장점이 있다.

tsc 명령어

더 자세한 명령어는 해당 링크 참고

주요 명령어

  • tsc —-init

    • tsconfig.json이 생성되는 명령어
    • 말 그대로 초기화 관련 명령어로 TypeScript 설정에 관련된 tsconfig.json 생성
  • tsc index.ts

    • index.ts를 컴파일 한다.
  • tsc src/*.ts

    • src 디렉토리 안에 있는 모든 TypeScript 파일을 컴파일 한다.
  • tsc index.js --declaration --emitDeclarationOnly

    • @types 패키지를 위한.d.ts 파일 생성을 하는 명령
    • TypeScript로 작성된 모듈이 아니라 JavaScript로 작성된 모듈에 타입 선언을 제공할 때 유용하게 사용된다.
profile
둡둡

0개의 댓글