[TS]TypeScript를 JavaScript로 컴파일하는 방법: tsc와 런타임 이해하기

박두팔이·2024년 10월 2일
1

자바스크립트

목록 보기
8/9

1. 컴파일러

타입스크립트는 런타임이 존재하지 않고 컴파일러가 존재한다. ts -> js로 변환하여 실행할 수 있다.

2. TypeScript를 실행하는 두 가지 방법

2-1. tsc(typeScript compiler) 컴파일러

  • typeScript를 javaScipt로 변환하며 실행하는 방법이다.
  • tsc란, typeScript Compiler의 약자로, typeScript는 정적 타입을 지원한다.
  • tsc명령어를 사용할 수 있는 방법은 ts컴파일러(typescript패키지)를 설치하고 올바른 환경 설정을 하는 것이다.
    • 프로젝트별로 ts를 관리하고 싶을 때 사용하는 방법: npm install --save-dev typescript
    • 전역이 아닌 프로젝트 단위에서의 ts파일을 실행하기 위한 명령어로는 npx tsc index.ts가 있다.
      • npx: node.js의 패키지 관리자인 npm과 함께 제공되는 도구로 프로젝트의 실행 범위(scope)를 자동으로 설정해 주는 역할을 한다.
    • 여러 프로젝트에서 동일한 타입스크립트 버전을 사용하려면 global으로 설치하는 방법: npm install -g typescript
    • 설치 후 어디서든 tsc명령어를 사용할 수 있다.
      코드 실행 예시: tsc index.ts
// index.ts
let str:string = "hihi~";
console.log(str);

// index.ts 파일 실행 명령어
tsc index.ts // ts가 전역에 설치된 경우
npx tsc index.ts // ts를 프로젝트별로 관리하는 경우

위의 코드를 실행한다고 가정할 때, type script를 실행하기 위해선 브라우저가 ts를 읽지 못하기 때문이다. 런타임 환경이 이해할 수 있는 언어는 javaScript로 웹 브라우저는 js만을 이해하고 실행할 수 있다.

Runtime?

  • 프로그램이 작성된 코드를 해석하고 실행하는 시점
  • 일반적으로 프로그래밍에서 말하는 런타임 에러는 이 단계에서 발생하는 에러를 의미한다.

Compile time

  • 컴파일 타임은 코드를 컴파일러가 읽고 이해하여 실행 파일을 생성하는 시점
profile
기억을 위한 기록 :>

1개의 댓글

comment-user-thumbnail
2024년 10월 9일

여기서 컴파일러라는 것은 좀 애매하지만 (관념상)
그건 제외하고서 이야기 해보자면

TS 이야기를 하면서
런타임/컴파일타임을 이야기 하는 것은

JS 가 스크립트 언어 이기 때문임

일반적으로 스크립트 언어들 (JS, Python) 등은 모두
"런 타임"에 "기계어" 로 해석되어 실행되는 인터프리터 언어들임 (JAVA 포함)

C/C++/C# 등은 컴파일 언어인데
컴파일 언어들은
"컴파일 타임"에 "기계어"로 해석되어 실행 할 수 있는 상태가 됨. (실행은 언제 하든 노상관)

"컴파일 에러" 는 컴파일 시간에 잡아 낼 수 있는
문법적인 에러 같은 것을 말하며,

"런 타임" 에러는
러닝 상태가 되어서 발생하는 에러로
개발 언어와 상관없음.
예를 들어 정수 2개 입력을 받아서 나누는 프로그램이 있을 때
10 나누기 0을 시킨다면
런타임에 에러가 나게 됨.

JS 는 "런타임" 에러만 있기 때문에
TS 라는 것이 나옴, 실행 전에 에러를 잡아 내기 위해서. "컴파일" 시간을 만들어 버린거임
물론 JS 의 많은 버젼을 지원할 수 도 있고 하는 기능이 있지만 ...

실행 전에 에러를 잡아서 생기는 이득은 굉장히 큼으로 개발 비용 단축에 영향이 있음.

답글 달기