본문 바로가기
IT 기본상식

TypeScript란 무엇일까요?

by pavokka 2024. 5. 9.

TypeScript는 Microsoft에서 개발한 오픈 소스 프로그래밍 언어로, JavaScript를 기반으로 정적 타이핑과 객체 지향적 기능을 추가한 언어입니다. 2012년에 처음 발표되었으며, 웹 개발 분야에서 빠르게 인기를 얻고 있습니다.

타입스크립트

TypeScript의 주요 특징

  • 정적 타이핑: TypeScript는 변수와 함수에 타입을 선언할 수 있도록 하여 코드의 오류를 사전에 방지하고 유지 관리를 용이하게 합니다.
  • 객체 지향 프로그래밍: TypeScript는 클래스, 인터페이스, 상속, 다형성 등의 객체 지향 프로그래밍 기능을 제공하여 대규모 프로젝트 개발에 효율적입니다.
  • JavaScript 호환: TypeScript 코드는 JavaScript 코드로 컴파일되어 실행되므로, 기존 JavaScript 라이브러리와 프레임워크를 활용할 수 있습니다.
  • 향상된 개발 환경: TypeScript는 IntelliSense, 코드 완성, 코드 리팩토링 등 다양한 개발 도구를 제공하여 개발 생산성을 높입니다.

TypeScript의 장점

  • 코드 오류 감소: 정적 타이핑 덕분에 런타임 오류가 발생하기 전에 코드 오류를 발견하고 수정할 수 있어 개발 효율성을 높일 수 있습니다.
  • 유지 관리 용이: 코드의 구조와 의도를 명확하게 표현하여 코드를 이해하고 유지 관리하기 쉽습니다.
  • 대규모 프로젝트 개발에 적합: 객체 지향 프로그래밍 기능을 통해 대규모 프로젝트를 효율적으로 개발하고 관리할 수 있습니다.
  • 개발 생산성 향상: IntelliSense, 코드 완성 등 다양한 개발 도구를 제공하여 개발자의 생산성을 높입니다.

TypeScript의 활용 분야

  • 웹 개발: 웹 애플리케이션, 프론트엔드 프레임워크, 웹 게임 등 웹 개발 분야에서 널리 사용됩니다.
  • 모바일 개발: React Native, NativeScript 등 모바일 개발을 위한 프레임워크에서 TypeScript를 활용합니다.
  • 서버 개발: Node.js와 함께 사용하여 백엔드 서버 개발에도 활용됩니다.
  • 기타: 데스크톱 애플리케이션, 게임 개발, 툴 개발 등 다양한 분야에서 TypeScript를 사용할 수 있습니다.

TypeScript 학습 방법

  • 공식 문서: TypeScript 공식 문서([유효하지 않은 URL 삭제됨] TypeScript 언어에 대한 자세한 정보와 학습 자료를 제공합니다.
  • 온라인 강좌: Udemy, Coursera 등 온라인 교육 플랫폼에서 TypeScript 학습 강좌를 수강할 수 있습니다.
  • 책: TypeScript 관련 책들이 다양하게 출판되어 있어, 체계적인 학습에 도움이 됩니다.
  • 커뮤니티: TypeScript 커뮤니티([유효하지 않은 URL 삭제됨] 참여하여 다른 개발자들과交流하고 질문을 해결할 수 있습니다.

TypeScript 시작하기

TypeScript를 시작하려면 다음과 같은 단계를 따르세요.

  1. Node.js 설치: TypeScript를 사용하려면 Node.js가 설치되어 있어야 합니다. Node.js를 설치하지 않은 경우, [유효하지 않은 URL 삭제됨] 다운로드하고 설치하십시오.
  2. TypeScript 설치: 다음 명령을 사용하여 TypeScript를 설치하십시오.
npm install -g typescript
  1. TypeScript 컴파일러 사용: TypeScript 코드를 JavaScript 코드로 컴파일하려면 다음 명령을 사용하십시오.
tsc <filename.ts>
  1. 코드 에디터 설정: Visual Studio Code, WebStorm 등 대부분의 코드 에디터는 TypeScript를 지원합니다. 코드 에디터에서 TypeScript 언어 지원을 설정하십시오.

TypeScript 예제 

클래스 및 인터페이스

TypeScript는 클래스와 인터페이스를 사용하여 객체 지향 프로그래밍을 지원합니다.

클래스 예제:

class Person {
  name: string;
  age: number;

  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }

  greet() {
    console.log(`안녕하세요, 저는 ${this.name}입니다. 제 나이는 ${this.age}살입니다.`);
  }
}

const person = new Person('홍길동', 30);
person.greet(); // 안녕하세요, 저는 홍길동입니다. 제 나이는 30살입니다. 출력
 

인터페이스 예제:

interface Shape {
  area(): number;
  perimeter(): number;
}

class Circle implements Shape {
  radius: number;

  constructor(radius: number) {
    this.radius = radius;
  }

  area(): number {
    return Math.PI * this.radius * this.radius;
  }

  perimeter(): number {
    return 2 * Math.PI * this.radius;
  }
}

const circle = new Circle(5);
console.log(circle.area()); // 78.53975657223025 출력
console.log(circle.perimeter()); // 31.41592653589793 출력
 

제네릭

TypeScript는 제네릭을 사용하여 코드를 재사용성 있게 만들 수 있습니다.

function identity<T>(value: T): T {
  return value;
}

const number: number = identity(10);
const string: string = identity('hello');

console.log(number); // 10 출력
console.log(string); // hello 출력
 

모듈

TypeScript는 모듈을 사용하여 코드를 모듈화하고 관리할 수 있습니다.

// greet.ts
export function greet(name: string): string {
  return `안녕하세요, ${name}님!`;
}

// app.ts
import { greet } from './greet';

const message = greet('TypeScript');
console.log(message); // 안녕하세요, TypeScript님! 출력
 

TypeScript를 사용한 웹 개발

TypeScript는 웹 개발에서 다양한 프레임워크와 라이브러리와 함께 사용될 수 있습니다.

React와 함께 사용하기:

 

// App.tsx
import React from 'react';

const App: React.FC = () => {
  return (
    <div>
      <h1>TypeScript로 만든 React 앱</h1>
      <p>안녕하세요!</p>
    </div>
  );
};

export default App;
 

Angular와 함께 사용하기:

 
// app.component.ts
import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'TypeScript Angular App';
}
 

TypeScript 활용 사례

TypeScript는 다양한 웹 개발 프로젝트에서 활용되고 있습니다.

  • Google: Gmail, Google Docs, Google Maps 등 Google 서비스의 일부에서 TypeScript를 사용합니다.
  • Microsoft: Visual Studio Code, Office 365 등 Microsoft 제품의 일부에서 TypeScript를 사용합니다.
  • Amazon: AWS Amplify, Amazon S3 등 Amazon 서비스의 일부에서 TypeScript를 사용합니다.
  • Facebook: React, React Native 등 Facebook 오픈 소스 프로젝트에서 TypeScript를 사용합니다.

TypeScript 학습 자료