loading
본문 바로가기
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 학습 자료