[Typescript] 타입스크립트 소개

SOL·2023년 5월 2일
0

TypeScript

목록 보기
1/8
post-thumbnail

타입스크립트를 사용하는 이유를 알아보기 위해, 먼저 베이스가 되는 자바스크립트 언어에 대해 알아보겠습니다.



자바스크립트

자바스크립트는 현재 세가지 종류가 있습니다.

  • 웹 브라우저에서 동작하는 표준 자바스크립트 ES5
  • 2015년부터 매년 새로운 버전을 발표하는 ESNext
  • ESNext에 타입기능을 추가한 타입스크립트

자바스크립트의 특징은 다음과 같습니다.

Dynamically typed
자바스크립트는 Dynamic typing을 지원하는 언어입니다. 예를들어 3 - 2 라는 빼기 연산을 하고싶을 때, 3 - '2' 라고 문자를 적어도 런타임 시 동적으로 숫자로 인식하여 연산을 해줍니다. 오히려 편리한 기능이 아닌가 싶다가도 프로젝트의 규모가 커짐에 따라 버그가 생겼을때 찾기 어려울뿐더러(자바스크립트의 오류메세지는 세세하게 알려주지 않기에 조금 불친절합니다), 사용자가 우리의 애플리케이션을 사용하는 동안 오류가 발생하기 때문에 심각한 피해를 입을 수 있습니다.


Prototype based
자바스크립트는 프로토타입 기반 언어입니다. 자바스크립트의 프로토타입은 객체 지향 프로그래밍에서 객체 간의 상속을 구현하는 데 사용됩니다. 클래스 기반 언어에서는 상속을 사용하지만 프로토타입 기반 언어에서는 어떤 객체를 원형을 삼고 이를 복제(참조)함으로써 상속과 비슷한 효과를 얻습니다.


Constructor functions
자바스크립트는 함수를 이용하여 간편하게 객체를 만들 수 있습니다. 물론 ES6에서 클래스 문법이 도입되었지만 이것도 프로토타입을 기반으로 하고 있기 때문에 강력한 객체 지향 프로그래밍을 하기는 어렵습니다.



이렇게 런타임 시 타입 에러를 발생시킬 수 있는 치명적인 단점을 보완하기 위해, 좀 더 객체 지향적인 프로그래밍을 위해 타입스크립트의 사용이 선호되는 추세입니다.



타입스크립트

타입스크립트는 마이크로소프트에서 2012년 발표한 오픈소스입니다. 자바스크립트의 대체 언어 중 하나로써 자바스크립트의 타입 부분을 좀 더 엄격하게 체크하기 위해 만들어진 프로그래밍 언어입니다.

npm trends 사이트에서 타입스크립트 다운로드 추세를 보면 꾸준한 상승세를 볼 수 있습니다.


타입스크립트의 특징은 다음과 같습니다.

Transcompiles
타입스크립트는 자바스크립트가 동작하는 모든 환경에서 대체해서 사용 가능합니다. 컴파일러를 통해 자바스크립트 런타임 환경에서 돌아갈 수 있는 자바스크립트 언어로 변환됩니다. 컴파일러는 타입스크립트 자체에서 제공하는 컴파일러나 바벨을 사용할 수 있습니다.


Statically typed
자바스크립트와 달리 Static typing을 지원하기 때문에 컴파일 시 타입 에러를 잡아줍니다. 따라서 코드를 짜면서 즉각적으로 오류를 확인 할 수 있어 좀 더 안정적인 개발이 가능합니다. 타입스크립트 컴파일러는 문제의 원인을 친절하게 알려주는 편입니다.


Object oriented programming
타입스크립트는 자바스크립트의 문법 뿐만 아니라 class, interface, generics, types를 활용하여 좀 더 객체 지향 프로그래밍이 가능합니다. 객체 위주의 모듈성 개발과 재사용이 높고 객체 단위로 확장해 나갈 수 있으며 유지 보수가 좋은 개발을 할 수 있습니다.



프로젝트를 협력하여 진행 시, A 개발자가 짠 코드를 다른 개발자들이 사용할 때 항상 A의 의도대로 사용되지 않을 경우가 있을 것 입니다. 버그가 발생했을 때 대규모 프로젝트일수록 오류의 원인을 찾기 어렵습니다. 이런 문제점을 보완하기 위해 코드 작성 시 즉각적으로 오류를 잡아주고 좀 더 객체 지향 프로그래밍이 가능한 타입스크립트를 쓰면 좋습니다. 타입스크립트를 사용함으로써 좀 더 안정적이며 유지보수성 좋은 소프트웨어를 개발할 수 있습니다.

profile
개발 개념 정리

0개의 댓글

관련 채용 정보