[javascript] 다형성과 인터페이스의 활용

다형성과 인터페이스는 JavaScript의 핵심 개념 중 하나로, 객체 지향 프로그래밍에서 중요한 역할을 합니다. 이번 포스트에서는 다형성과 인터페이스의 개념과 실제 활용에 대해 알아보겠습니다.

1. 다형성(Polymorphism)

다형성이란, 같은 이름의 메서드를 호출했을 때 객체의 타입에 따라 다르게 동작하는 것을 말합니다. JavaScript에서는 동적 타입 언어이기 때문에 객체의 타입을 미리 지정할 필요가 없습니다. 이러한 특성으로 다형성을 쉽게 구현할 수 있습니다.

예를 들어, 다음과 같이 Shape 객체에서의 draw 메서드를 다형성을 활용하여 구현할 수 있습니다.

class Shape {
  draw() {
    console.log('도형을 그립니다.');
  }
}

class Circle extends Shape {
  draw() {
    console.log('원을 그립니다.');
  }
}

class Rectangle extends Shape {
  draw() {
    console.log('사각형을 그립니다.');
  }
}

const circle = new Circle();
const rectangle = new Rectangle();

circle.draw(); // "원을 그립니다."
rectangle.draw(); // "사각형을 그립니다."

2. 인터페이스(Interfaces)

인터페이스는 객체가 특정 속성이나 메서드를 가지고 있는지를 검사하기 위한 방법으로 사용됩니다. JavaScript에서는 공식적으로 인터페이스를 지원하지 않지만, 객체가 특정 속성이나 메서드를 가지고 있는지를 검사할 수 있습니다.

다음은, TypeScript를 사용하여 인터페이스를 정의하고 활용하는 예시입니다.

interface Printable {
  print(): void;
}

class Document implements Printable {
  print() {
    console.log('문서를 출력합니다.');
  }
}

function printDocument(doc: Printable) {
  doc.print();
}

const document = new Document();
printDocument(document); // "문서를 출력합니다."

결론

다형성과 인터페이스는 객체 지향 프로그래밍에서 중요한 개념으로, 코드의 유연성과 재사용성을 높여줍니다. JavaScript를 비롯한 다양한 언어에서 이러한 개념을 활용하여 효율적이고 유지보수가 쉬운 코드를 작성할 수 있습니다.

참고 문헌: