[Type Script] 타입스크립트란?

Hanjinsu·2023년 6월 13일
0

TypeScript

목록 보기
1/2
post-thumbnail

Type Script란 무엇일까?

마이크로소프트에서 구현한 JavaScript의 슈퍼셋(Superset) 프로그래밍 언어이다.
확장자로는 .ts를 사용하며, 컴파일의 결과물로 JavaScript 코드를 출력한다.
최종적으로 런타임에서는 이렇게 출력된 JavaScript 코드를 구동시키게 된다.

Jave Script vs Type Script

여기서 Java Scpript 와 Type Script의 차이점은 무엇이있을까?

Java ScriptType Script
동적타입 언어정적타입 언어
인터프리터언어컴파일언어
독립적으로 사용가능Java Script에 의존적
타입에 제한이 없다더 나은 구조와 간결함, 일관성, 재사용성
.js 확장자.ts 확장자
작고 간단한 프로젝트에 적합함복잡한 프로젝트에 적합함

이런식으로 Java Script와 Type Script의 차이점을 구분 할 수 있다.
각 언어가 가지고 있는 특징 (ex. 타입언어 등등)은 다음에 자세하게 알아보도록 하겠다.

Type Script를 사용하는 이유 및 장점

1. Type Script는 정적타입언어 이다!

정적타입언어(Statically typed language)란 작성자가 소스 코드를 보고 변수 타입을 직접 작성하는 언어이다. 정적타입 언어에는 C, C#, C++, Java 등의 언어가 있으며, 이들 언어는 변수에 들어갈 값의 형태에 따라 자료형을 지정해주어야 하며 컴파일 시에 자료형에 맞지 않은 값이 들어있으면 컴파일 에러가 발생한다. 정적타입언어를 사용시 장점과 단점으로는

장점
1. 코드의 가독성이 좋아 다수의 협업이나 프로젝트를 할 때 유지보수에 유리하다
2. 컴파일 시에 미리 타입을 결정하기 때문에 실행 속도가 빠르다
3. 타입 에러로 인한 문제점을 초기에 발견할 수 있어 타입 관련한 런타임 오류를 방지할 수 있고 타입의 안정성이 높다.

단점
1. 코드를 작성할 때 매번 타입을 결정해 주는것이 번거로움이 있다.

코드를 통하여 정적타입언어에 대한 장점을 알아보도록 하자

Javascript
function sum(a, b) {
  return a + b;
}

위 함수는 2개의 숫자 타입 인수를 전달받아 그 합계를 반환하려고 한다.
하지만 코드상으로는 어떤 타입의 인수를 전달하여야 하는지, 어떤 타입의 반환값을 리턴해야 하는지 명확하지 않다. 따라서 위 함수를 Java Script를 사용하면 아래와 같이 호출될 수 있다.

Javascript
function sum(a, b) {
  return a + b;
}

sum('x', 'y'); // 'xy'

위에 코드는 Java Script 문법상 어떠한 문제도 없고 Java Script 엔진은 아무런 문제 없이 위 코드를 실행할 것이다. 이러한 문제가 발생한 이유는 변수나 반환값의 타입을 사전에 지정하지 않는 자바스크립트의 동적 타이핑(Dynamic Typing)에 의한 것이다.

위 함수를 TypeScript의 정적 타입을 사용하여 다시 작성 해보면

typescript
function sum(a: number, b: number) {
  return a + b;
}

sum('x', 'y');
// error TS2345: Argument of type '"x"' is not assignable to 
//parameter of type 'number'.

TypeScript는 정적 타입을 지원하므로 컴파일 단계에서 오류를 포착할 수 있는 장점이 있다. 명시적인 정적 타입 지정은 개발자의 의도를 명확하게 코드로 기술할 수 있다. 이는 코드의 가독성을 높이고 예측할 수 있게 하며 디버깅을 쉽게 할수 있다는 장점이 있다.

2. 도구의 지원

TypeScript를 사용하는 이유 중 큰 장점은 IDE(통합개발환경) 를 포함한 다양한 도구의 지원을 받을 수 있다는 것이다. IDE와 같은 도구에 타입 정보를 제공함으로써 높은 수준의 인텔리센스(IntelliSense), 코드 어시스트, 타입 체크, 리팩토링 등을 지원받을 수 있으며 이러한 도구의 지원은 대규모 프로젝트를 위한 필수 요소이기도 하다.


위해서 언급한 장점 말고도 여러 장점도 많지만 아직 내가 크게 체감할 수 있는 정도의 실력이 아니여서 따로 작성하지는 않았다. 전체적으로 보았을 때는 규모가 큰 프로젝트를 하게 되엇을 때 Type Script를 사용하면 편리 할 것 같다는 생각이 들었다. 물론! 각 상황에 맞게 적절한 언어를 사용하는게 가장 좋겠지만!!!

이번 편은 Type Script가 무엇인지에 대해서만 작성을 해보았다. 다음 편으로는 Type Script에 개발환경에 대해서 공부를 하고 작성을 해 보아야겠다.

0개의 댓글