[python] 인터페이스와 클래스 상속의 비교

인터페이스와 클래스 상속은 소프트웨어 개발에서 중요한 역할을 합니다. 인터페이스는 클래스에서 구현해야 하는 메서드를 정의하지만, 실제 구현을 제공하지는 않습니다. 반면에 클래스 상속은 부모 클래스의 속성과 메서드를 자식 클래스가 상속받아 사용할 수 있도록 하는 방법입니다.

인터페이스

인터페이스는 클래스가 지켜야 하는 계약을 정의합니다. 파이썬에서는 명시적으로 인터페이스를 정의할 수는 없지만, 추상 베이스 클래스(ABC)를 사용하여 비슷한 효과를 낼 수 있습니다. 예를 들어, 다음은 MyInterface라는 인터페이스를 정의하는 예시입니다.

from abc import ABC, abstractmethod

class MyInterface(ABC):
    @abstractmethod
    def method1(self):
        pass
    
    @abstractmethod
    def method2(self):
        pass

인터페이스는 해당 메서드를 구현하도록 보장하여, 코드의 일관성과 가독성을 높일 수 있습니다.

클래스 상속

클래스 상속은 부모 클래스의 속성과 메서드를 자식 클래스가 상속받아 사용할 수 있도록 합니다. 다음은 ParentClass를 상속받는 ChildClass의 예시입니다.

class ParentClass:
    def method1(self):
        print("Method 1")

    def method2(self):
        print("Method 2")

class ChildClass(ParentClass):
    def method3(self):
        print("Method 3")

ChildClassParentClass의 메서드를 상속받을 뿐만 아니라 새로운 메서드를 추가하여 확장할 수 있습니다.

결론

인터페이스와 클래스 상속은 각각 계약을 정의하고 클래스를 확장하는 데 사용됩니다. 적합한 상황에 따라 적절히 사용하여 코드의 유지보수성과 재사용성을 향상시킬 수 있습니다.

이러한 개념들을 활용하여 파이썬에서 더욱 유지보수하기 좋고 유연한 코드를 작성할 수 있습니다.

참고문헌: