TypeScript

JeBread·2024년 5월 13일
0

면접 대비

목록 보기
2/12

TypeScript

타입스크립트(TypeScript)는 자바스크립트(JavaScript)를 확장한 프로그래밍 언어로 바스크립트의 모든 코드는 타입스크립트에서도 유효하며, 타입스크립트는 추가적으로 타입 시스템과 몇 가지 기능을 제공하여 자바스크립트의 확장 버전으로 볼 수 있습니다.

주요 특징

  • 정적 타입 지정 : 타입스크립트의 가장 큰 특징은 선택적 정적 타입 지정을 지원한다는 것입니다. 이를 통해 개발자는 변수, 함수의 매개변수, 함수의 반환 값 등에 대해 명시적으로 타입을 선언할 수 있습니다. 이는 컴파일 시점에 타입 체크를 가능하게 하여, 런타임 오류를 줄이고 코드 품질을 향상시키는 데 도움을 줍니다.

  • 클래스 기반 객체 지향 프로그래밍 : 자바스크립트의 프로토타입 기반 상속 대신, 타입스크립트는 자바나 C#과 유사한 클래스 기반의 객체 지향 프로그래밍을 지원합니다. 이는 코드의 재사용과 확장성을 향상시키며, 대규모 애플리케이션 개발에 적합합니다.

  • ES6 및 미래 자바스크립트 지원 : 타입스크립트는 ES6(ES2015) 이상의 자바스크립트 기능들을 지원하며, 아직 일부 브라우저에서 지원하지 않는 최신 자바스크립트 기능들을 사용할 수 있게 해줍니다. 컴파일 과정에서 이러한 최신 기능들을 ES5나 ES3 등 오래된 자바스크립트 버전으로 변환할 수 있습니다.

  • 도구 지원 : 타입스크립트는 코드 자동 완성, 인터페이스 정의, 리팩토링 지원 등 풍부한 개발 도구 지원을 받습니다. 이는 개발자가 더 효율적으로 코드를 작성하고 오류를 더 쉽게 발견할 수 있게 해줍니다.

Enum과 Object의 차이점

Enum (열거형)

  • enum은 타입스크립트에서 특별한 기능을 하는, 명명된 상수의 집합을 정의할 때 사용됩니다. 각 enum 멤버에는 숫자값이 자동으로 할당되거나, 문자열 또는 다른 상수 값을 수동으로 할당할 수 있습니다.
  • enum은 코드의 가독성과 유지보수성을 높이기 위해 사용되며, 예를 들어 상태 코드, 설정 옵션 등 제한된 데이터 집합을 표현할 때 유용합니다.

Object

  • 객체는 속성의 집합으로, 각 속성은 키와 값으로 구성됩니다. 값으로는 숫자, 문자열, 함수 등 다양한 타입이 올 수 있습니다.
  • 타입스크립트에서 객체는 구조 기반 타입 시스템을 사용하여, 속성의 타입을 명시적으로 선언할 수 있습니다.

차이점

  • enum은 타입 안전성을 제공하며, 정의된 값만을 enum 타입 변수에 할당할 수 있습니다. 반면, 객체는 더 유연하게 속성을 추가하거나 변경할 수 있지만, 기본적으로 같은 수준의 타입 안전성을 제공하지 않습니다.
  • enum은 컴파일 타임에 값이 결정되고, 객체는 런타임에 속성이 추가되거나 변경될 수 있습니다.

Type과 Interface의 차이점

Type

  • type은 타입스크립트에서 타입 별칭을 생성할 때 사용됩니다. 이는 기존 타입에 새로운 이름을 부여하거나, 유니온, 인터섹션, 튜플 등 복잡한 타입을 정의하는데 사용됩니다.

Interface

  • interface는 객체의 형태를 정의하는 데 사용됩니다. interface는 클래스가 구현해야 하는 구조와 계약을 정의하며, 확장성이 뛰어난 상속 기능을 제공합니다.

차이점

  • interface는 다른 인터페이스를 상속할 수 있으며, 클래스가 구현할 수 있습니다. 반면, type은 표현력이 더 뛰어나며 유니온 타입이나 튜플 등 복잡한 타입을 정의할 수 있지만, 클래스나 함수의 구현에 사용될 수는 없습니다.
  • interface는 주로 객체의 형태를 정의하고 클래스와 같은 구조적 타이핑에 맞추어 설계된 반면, type은 다양한 타입의 조합이나 매핑 등에 유용하게 사용됩니다.

타입스크립트를 사용하는 이유와 장점의 구체적 사례

  • 코드의 안정성 향상 : 프로젝트에서 자바스크립트를 타입스크립트로 전환한 결과, 초기 개발 단계에서 많은 타입 관련 오류를 사전에 발견하고 수정할 수 있었습니다. 이로 인해 런타임 오류가 크게 줄어들었고, 유지보수 비용이 감소했습니다.

  • 리팩토링 용이성 : 타입스크립트의 정적 타입 시스템 덕분에 코드 베이스 내에서 변수와 함수의 용도가 명확해지고, 리팩토링 시 예기치 않은 오류의 리스크를 줄일 수 있었습니다. 이는 프로젝트의 코드 구조 변경을 용이하게 만들었습니다.

  • 개발자 협업 강화 : 타입스크립트를 사용함으로써 개발 팀 멤버 간의 의사소통이 향상되었습니다. 타입 정의를 통해 함수의 인풋과 아웃풋이 명확해지며, 개발자가 코드를 더 빠르고 정확하게 이해할 수 있게 되었습니다.

0개의 댓글