[python] 인터페이스 설계와 추상화
Python에서는 인터페이스 설계와 추상화를 위해 추상 기본 클래스(ABC, Abstract Base Class)를 사용합니다. 이를 통해 클래스의 인터페이스를 정의하고 메소드의 구현을 강제함으로써 코드의 일관성을 유지할 수 있습니다.
추상 기본 클래스 (ABC)
추상 기본 클래스는 완전하게 추상적인 클래스이며, 인스턴스화 될 수 없습니다. 대신 하위 클래스에서 상속받아 추상 메소드들을 구현하도록 합니다.
from abc import ABC, abstractmethod
class Shape(ABC):
@abstractmethod
def area(self):
pass
@abstractmethod
def perimeter(self):
pass
위의 예제에서 Shape
클래스는 두 개의 추상 메소드인 area
와 perimeter
를 정의합니다. 이 클래스를 상속받는 하위 클래스에서는 반드시 이 두 메소드를 구현해야 합니다.
추상화
추상화는 복잡한 시스템을 단순화하여 핵심적인 요소만을 남기는 것을 의미합니다. Python에서는 추상화를 통해 코드의 모듈화와 응집도를 높이고, 유지보수성을 향상시킬 수 있습니다.
class Animal(ABC):
@abstractmethod
def speak(self):
pass
class Dog(Animal):
def speak(self):
return "Woof!"
class Cat(Animal):
def speak(self):
return "Meow!"
위의 예제에서 Animal
클래스는 추상 메소드 speak
를 정의하고, 이를 상속받아 하위 클래스인 Dog
와 Cat
에서 각각 구현하고 있습니다.
간결하면서도 유연한 추상화와 인터페이스 설계는 코드의 유지보수와 확장에 매우 유용합니다. Python에서의 추상화 개념을 잘 숙지하고 활용하여 더욱 견고하고 효율적인 코드를 작성할 수 있습니다.
어떻게 추상화와 인터페이스 설계를 도와주는가에 대한 참고자료