TypeScript
명사 · 프로그래밍 언어
Microsoft가 개발한 JavaScript의 타입이 추가된 상위 집합으로, 선택적 정적 타이핑 시스템을 언어에 추가합니다 — 실행 시가 아닌 컴파일 시 오류를 감지하여 프로덕션 버그를 획기적으로 줄이고 대규모 프로젝트의 유지보수성을 향상시킵니다.
모든 브라우저와 Node.js 환경과 호환되는 표준 JavaScript로 트랜스파일되는 오픈소스 프로그래밍 언어 — 기존 JavaScript 생태계와의 완전한 호환성을 유지하면서 인터페이스, 제네릭, enum, 데코레이터 등 고급 기능을 제공합니다.
Angular, Google, Microsoft, Slack의 내부 프로젝트에서 채택된 산업 표준으로, TypeScript는 코드를 보호하고, IDE 자동 완성을 개선하며, 복잡한 코드베이스에서의 협업을 용이하게 하려는 전문 개발 팀의 선호 선택이 되었습니다.
TypeScript로 코딩하려면 먼저 `npm install -g typescript`로 컴파일러를 설치한 후 `.ts` 확장자로 파일을 생성합니다. 타입 어노테이션이 추가된 일반 JavaScript를 작성합니다: `function greet(name: string): string return 'Bonjour ' + name; `. 그런 다음 `tsc`로 컴파일하여 동등한 JavaScript 파일을 생성합니다. VS Code와 같은 현대 IDE는 자동 완성과 실시간 오류 감지를 제공하는 네이티브 통합을 갖추고 있어 개발을 크게 가속화합니다.
TypeScript는 특히 여러 개발자가 참여하는 대규모 프로젝트, 안정성이 중요한 핵심 애플리케이션, 장기적으로 발전할 코드베이스에 권장됩니다. Node.js를 사용하는 백엔드 API, React나 Angular를 사용하는 복잡한 프론트엔드 애플리케이션, 팀 간 공유 라이브러리에 이상적입니다. 프로젝트가 수백 줄을 넘거나 한 명 이상의 개발자가 참여하면 TypeScript는 품질과 생산성 면에서 수익성 있는 투자가 됩니다.
TypeScript를 사용하면 University College London의 연구에 따르면 컴파일 시 타입 검증을 통해 프로덕션 버그를 최대 15% 줄일 수 있습니다. 지능적인 자동 완성, 용이한 코드 내비게이션 및 안전한 리팩토링으로 개발자 경험을 획기적으로 향상시킵니다. TypeScript는 또한 코드를 자체 문서화합니다: 타입 시그니처가 IDE가 개발자를 안내하기 위해 활용하는 살아있는 문서 역할을 합니다. 모든 야심 찬 전문 프로젝트에 권장하는 생산성 및 소프트웨어 품질 도구입니다.
TypeScript는 세계 최대 기술 기업들이 사용합니다: Microsoft(VS Code 개발을 위해 만듦), Google(Angular에 채택), Slack, Airbnb, Bloomberg, Stripe. Vercel의 Next.js 팀도 프레임워크 자체 개발에 사용합니다. State of JS 2024에 따르면 TypeScript는 90% 이상의 만족도로 JavaScript 생태계에서 가장 사랑받는 언어입니다. 이러한 대규모 채택은 풍부한 타입 생태계와 활발한 커뮤니티를 보장합니다.
TypeScript는 Microsoft의 Anders Hejlsberg가 만들었으며 2012년 10월에 공개되었습니다. Anders Hejlsberg는 C#과 Turbo Pascal의 창시자이기도 하여 프로그래밍 역사상 가장 영향력 있는 엔지니어 중 한 명입니다. 이 프로젝트는 컴파일 언어가 제공하는 타입 안전성을 유지하면서 JavaScript로 대규모 웹 애플리케이션을 개발해야 하는 Microsoft의 필요에서 탄생했습니다. 현재 TypeScript는 수천 명의 기여자가 참여하는 GitHub 오픈소스 프로젝트입니다.
프로젝트에서 TypeScript를 사용하려면 엄격성 수준과 컴파일 옵션을 맞춤 설정할 수 있는 `tsconfig.json` 파일을 생성하는 `npx tsc --init`으로 구성을 초기화합니다. `.js` 파일을 `.ts`(또는 React의 경우 `.tsx`)로 이름을 변경하고 점진적으로 타입 어노테이션을 추가합니다. Next.js와 Angular 같은 현대 프레임워크는 제로 구성으로 네이티브 TypeScript 지원을 제공합니다. 채택은 점진적으로 할 수 있습니다: TypeScript는 순수 JavaScript를 수용하므로 자신의 페이스대로 코드베이스를 마이그레이션할 수 있습니다.
근본적인 차이점은 TypeScript가 JavaScript에 정적 타이핑 시스템을 추가한다는 것입니다: 변수, 매개변수 및 함수 반환값이 실행 전에 검증되는 명시적 타입을 가집니다. JavaScript는 동적으로 타입이 지정됩니다 — 타입 오류는 실행 시에만 감지됩니다. TypeScript는 또한 인터페이스, enum, 제네릭 및 접근 수정자를 도입합니다. 그러나 모든 유효한 JavaScript 코드는 유효한 TypeScript이기도 하며, TypeScript는 실행을 위해 순수 JavaScript로 트랜스파일됩니다. 따라서 다른 언어가 아닌 보안 상위 레이어입니다.