[typescript] 클래스와 인터페이스의 차이점 및 사용 방법

TypeScript에서 클래스(class)와 인터페이스(interface)는 모두 유용한 도구로써, 각각의 장단점과 사용 방법이 존재합니다. 이번 포스트에서는 TypeScript에서 클래스와 인터페이스의 차이점을 다루고, 각각의 사용 방법에 대해 알아보겠습니다.

목차

클래스

클래스는 TypeScript에서 객체지향 프로그래밍을 위해 사용됩니다. 클래스는 속성과 메서드로 구성되며, 인스턴스화하여 사용할 수 있습니다. 예를 들어, 다음은 TypeScript 클래스의 간단한 예시입니다.

class User {
  name: string;

  constructor(userName: string) {
    this.name = userName;
  }

  greet() {
    return `Hello, ${this.name}!`;
  }
}

const user1 = new User('Alice');
console.log(user1.greet()); // 출력: Hello, Alice!

인터페이스

인터페이스는 TypeScript에서 객체의 형태(shape)를 정의하는 데 사용됩니다. 클래스, 객체, 함수 등 다양한 요소의 형태를 정의할 수 있습니다. 예를 들어, 다음은 TypeScript 인터페이스의 간단한 예시입니다.

interface Shape {
  color: string;
  area: number;
}

function getShapeInfo(shape: Shape) {
  return `This shape is ${shape.color} and has an area of ${shape.area} square units`;
}

const shapeInfo = { color: 'red', area: 100 };
console.log(getShapeInfo(shapeInfo)); // 출력: This shape is red and has an area of 100 square units

클래스 vs. 인터페이스

클래스와 인터페이스는 각각의 특성에 따라 사용되는 경우가 다릅니다. 클래스는 객체의 구현(implementation)을 정의하고, 상속을 통해 확장될 수 있으며, 인스턴스화하여 사용됩니다. 반면에 인터페이스는 구조(structure)를 정의하고, 다른 객체가 해당 형태를 따르도록 강제합니다.

클래스와 인터페이스의 사용 방법

클래스는 객체지향적인 설계 및 구현에 적합하며, 인터페이스는 다양한 요소의 형태를 표현하고 구현의 일관성을 유지하는 데 유용합니다. TypeScript에서는 두 가지를 적절히 조합하여 코드를 보다 유연하고 확장 가능하게 작성할 수 있습니다.

이렇게 클래스와 인터페이스는 TypeScript 프로그래밍에서 객체지향과 구조적 프로그래밍을 지원하며, 각각의 특성에 맞게 활용함으로써 코드의 가독성과 유지보수성을 향상시킬 수 있습니다.

참고 자료

위의 내용을 통해 TypeScript에서 클래스와 인터페이스를 활용하는 방법에 대해 간략히 살펴보았습니다. TypeScript에서 클래스와 인터페이스를 적절히 활용하여 보다 효과적인 코드 작성을 지향할 수 있습니다.