미새문지

Typescript란? 본문

개발 TIL

Typescript란?

문미새 2025. 1. 3. 00:58
728x90

Typescript란?

Typescript는 마이크로소프트에서 개발한 오픈 소스 프로그래밍 언어로, Javascript의 상위 집합이다.

또한, 타입스크립트는 정적 타입을 지원하며, 자바스크립트 코드에 선택적으로 타입을 추가할 수 있게 해주고, 최종적으로 타입스크립트 코드는 자바스크립트로 변환되어 브라우저나 node.js 환경에서 실행된다.

 

자바스크립트는 대규모 애플리케이션을 개발할 때 동적 타입 언어의 특성상 버그를 찾기 어렵고 코드 유지보수가 힘들어지는 문제가 있었는데, 이를 해결하기 위해 타입스크립트를 개발하게 됐다.

자바스크립트의 상위 집합이기 때문에 타입스크립트는 ES6+의 모든 기능을 지원하며, 기존 자바스크립트 라이브러리와도 완벽히 호환된다.

 

타입스크립트 주요 특징

  1. 정적 타입
    • 변수, 함수 등에 타입을 명시적으로 정의할 수 있다.
    • 컴파일 단계에서 타입 오류를 잡아내어 코드 안정성을 높일 수 있다.
  2. 타입 추론
    • 타입을 명시적으로 작성하지 않아도, 타입스크립트가 값을 보고 타입을 유추한다. 
  3. 인터페이스와 타입 정의
    • 객체 구조를 정의하고 이를 기반으로 타입 안전성을 보장한다.
  4. ES6+ 기능 지원
    • 최신 ECMAScript 문법을 지원하며, 이전 버전의 자바스크립트로 컴파일이 가능하다.
  5. 대규모 애플리케이션에 적합
    • 코드의 모듈화와 유지보수를 쉽게 한다.
  6. 강력한 개발 도구 지원
    • vscode와 같은 IDE에서 코드 자동 완성, 리팩토링, 타입 체크 등을 제공한다.

 

타입스크립트 장점

  1. 코드 안정성 증가
    • 정적 타입 검사로 인해 런타임 오류를 줄이고, 코드를 작성하는 동안 오류를 발견할 수 있다.
  2. 코드 가독성과 유지보수성 향상
    • 타입 정보를 통해 다른 개발자가 코드의 의도를 쉽게 이해하고 유지보수할 수 있다.
  3. 대규모 프로젝트에 적합
    • 모듈화와 강력한 타입 시스템으로 인해 복잡한 프로젝트의 유지보수가 용이하다.
  4. 향상된 IDE 지원
    • 코드 자동 완성, 코드 탐색, 오류 표시 등의 기능이 개발 생산성을 높여준다.
  5. ES6+ 기능 지원
    • 최신 자바스크립트 기능을 사용하면서도 브라우저 호환성을 유지할 수 있다.

 

타입스크립트 단점

  1. 학습 시간 소요
    • 자바스크립트에 익숙해도 정적 타입 시스템과 새로운 문법을 배우는 데 시간이 필요할 수 있다.
  2.  컴파일 단계 필요
    • 타입스크립트는 자바스크립트로 변환해야 해서, 추가적인 빌드 과정이 필요하다.
  3.  초기 개발 시간 증가
    • 코드 작성 시 타입을 명시적으로 선언하는 과정에서 초기 개발 속도가 느려질 수 있다.
  4.  런타임 오류 완전 방지는 불가능
    • 타입 검사는 컴파일 단계에서만 이루어지기 때문에, 런타임 시 예외적인 오류는 여전히 발생할 수 있다.

타입스크립트와 자바스크립트의 차이점

특징 타입스크립트 자바스크립트
타입 시스템 정적 타입 지원 동적 타입
컴파일 필요 자바스크립트로 변환 필요 바로 실행 가능
확장성 ES6+ 기능과 추가 기능 지원 기본 ECMAScript 기능만 지원
오류 검출 시점 컴파일 시점 런타임 시점

 

단점보다 장점이 훨씬 많기 때문에 타입스크립트를 사용하게 되고, 기업에서 거의 기본적으로 타입스크립트로 개발한다.

특히, 개발자들간의 협업에서 타입 정의와 인터페이스를 통해 명확하게 전달이 가능하고, 코드를 일관성 있게 짤 수 있어 가독성이 좋아진다.

타입스크립트를 사용해야 할 상황

  • 대규모 프로젝트나 팀 개발을 할 때
  • 금융이나 의료 등, 코드 안정성이 중요한 애플리케이션
  • 정적 타입을 통해 오류를 줄이고 싶은 경우
  • 최신 자바스크립트 기능을 사용하면서도 하위 호환성을 유지하고 싶은 경우
728x90

'개발 TIL' 카테고리의 다른 글

클로저(Closure)  (0) 2025.01.07
SOLID 원칙  (0) 2025.01.06
defee headline api 연동 테스트 및 잡담  (0) 2025.01.02
프로그래머스 가장 큰 수  (0) 2024.12.23
프로그래머스 K번째 수  (0) 2024.12.23