TypeScript란?Language/TypeScript2023. 10. 15. 21:47
Table of Contents
TypeScript란 무엇인가?
TypeScript는 마이크로소프트(Microsoft)에서 개발한 오픈소스 프로그래밍 언어로, JavaScript에 타입을 추가한 정적 타입 언어입니다. 즉, JavaScript를 기반으로 하면서도 더 강력하고 안전한 코드를 작성할 수 있게 해줍니다.
정의
- TypeScript는
JavaScript의 상위 집합(Superset)으로,JavaScript의 모든 기능을 포함하면서 추가적인 기능을 제공합니다. - 코드 작성 단계에서 타입 검사를 수행해 런타임 오류를 줄이는 것을 목표로 합니다.
- 작성된 TypeScript 코드는
트랜스파일(Transpile)과정을 통해JavaScript로 변환되어 브라우저 및 서버 환경에서 실행됩니다.
목적
- 대규모 애플리케이션에서도 유지보수와 협업을 용이하게 하기 위한 것입니다.
- 타입 시스템을 통해 개발 과정에서 잠재적인 오류를 사전에 방지할 수 있습니다.
TypeScript와 JavaScript의 차이점
TypeScript는 JavaScript와의 호환성을 유지하면서도 아래와 같은 차별점을 제공합니다.
정적 타입 시스템
JavaScript는 동적 타입 언어로, 변수의 타입을 선언하지 않으며 런타임에 결정됩니다. 반면 TypeScript는 정적 타입 시스템을 제공하여, 변수의 타입을 미리 정의할 수 있습니다.
// JavaScript
let message = "안녕하세요"; // 타입이 암묵적으로 문자열로 결정됨
message = 42; // 런타임 오류 발생 가능
// TypeScript
let message: string = "안녕하세요"; // 타입을 명시적으로 선언
message = 42; // 컴파일 단계에서 오류 발생
ES6+ 기능 지원
TypeScript는 최신 ECMAScript 문법을 지원하며, 이를 오래된 환경에서도 사용할 수 있도록 트랜스파일합니다.
// TypeScript: ES6 문법 (화살표 함수)
const greet = (name: string): string => `Hello, ${name}!`;
// 트랜스파일된 JavaScript (ES5)
var greet = function(name) {
return "Hello, " + name + "!";
};
타입 인터페이스와 클래스
TypeScript는 인터페이스와 클래스와 같은 객체지향 프로그래밍(OOP) 개념을 보다 강력하게 지원합니다.
interface User {
id: number;
name: string;
}
class UserService {
private users: User[] = [];
addUser(user: User): void {
this.users.push(user);
}
}
TypeScript를 사용하는 이유
타입 안정성
- 변수, 함수, 객체 등에 타입을 명확히 지정함으로써 런타임 오류를 예방할 수 있습니다.
- 코드 작성 중에 타입 오류를 발견하므로 디버깅 시간을 단축합니다.
function calculateTotal(price: number, quantity: number): number {
return price * quantity;
}
calculateTotal(100, "5"); // 컴파일 오류 발생
코드 가독성 및 유지보수성
- 코드의 의도를 명확히 드러내어 협업 시 이해도를 높이고, 대규모 애플리케이션에서도 유지보수를 용이하게 합니다.
- 예측 가능한 타입을 사용하면, IDE의 자동완성 기능과 타입 힌트 기능을 활용할 수 있습니다.
확장성과 협업
- 대규모 팀 작업에서 인터페이스와 타입을 명시하여 팀원 간의 통합된 코딩 규칙을 유지할 수 있습니다.
TypeScript를 사용하는 대표적인 프로젝트와 회사
대표적인 프로젝트
- Angular: Google에서 개발한 프런트엔드 프레임워크로, 기본적으로 TypeScript를 사용합니다.
- VS Code: 마이크로소프트가 개발한 코드 에디터이며, 자체적으로 TypeScript로 작성되었습니다.
- NestJS: TypeScript를 사용하는 서버사이드 애플리케이션 프레임워크입니다.
TypeScript를 사용하는 주요 회사
- Microsoft: TypeScript를 개발하고 자사 프로젝트에서 적극 활용하고 있습니다.
- Google: Angular와 같은 프로젝트뿐만 아니라 다양한 도구에서 TypeScript를 채택했습니다.
- Slack: 사용자 경험 개선을 위해 프런트엔드 및 백엔드 코드에 TypeScript를 활용합니다.
- Airbnb: 안정성과 가독성을 위해 TypeScript로 코드베이스를 전환했습니다.

'Language > TypeScript' 카테고리의 다른 글
| TypeScript interface와 type aliasing (0) | 2023.10.16 |
|---|---|
| TypeScript 함수 타입 정의 (0) | 2023.10.16 |
| TypeScript 객체(Object)와 배열(Array)에서의 타입 (0) | 2023.10.16 |
| TypeScript 기본 타입 (0) | 2023.10.16 |
| TypeScript 설치 방법 및 기본 설정 (0) | 2023.10.16 |