본문 바로가기
프로그래밍언어/파이썬[중급]

[파이썬][중급] Chapter03. 추상 클래스와 ABC 모듈

by about_IT 2025. 5. 18.
728x90

파이썬은 객체지향 언어로서 추상 클래스(Abstract Class)를 정의하고 사용할 수 있습니다. 추상 클래스는 상속을 통해 구체적인 기능을 구현하게 만드는 '설계도'의 역할을 합니다. 파이썬에서는 abc 모듈을 통해 이를 지원합니다.


● 추상 클래스란?

추상 클래스는 하나 이상의 추상 메서드(구현되지 않은 메서드)를 포함하는 클래스입니다. 직접 인스턴스를 생성할 수 없으며, 이를 상속받은 하위 클래스에서 반드시 구현해야 합니다.

파이썬에서는 ABC 클래스를 상속하고 @abstractmethod 데코레이터를 통해 추상 메서드를 지정합니다.

from abc import ABC, abstractmethod

class Animal(ABC):
    @abstractmethod
    def sound(self):
        pass

위와 같은 추상 클래스는 직접 객체를 생성할 수 없으며, 상속한 하위 클래스에서 sound 메서드를 구현해야만 인스턴스를 만들 수 있습니다.


● 하위 클래스에서 구현하기

다음은 추상 클래스를 상속받은 예시입니다.

class Dog(Animal):
    def sound(self):
        return "멍멍"

이제 Dog 클래스는 sound() 메서드를 구현했으므로 객체를 생성할 수 있습니다. 반대로 구현하지 않으면 TypeError가 발생합니다.


● 추상 클래스의 목적

  • 일관된 인터페이스를 제공하여 하위 클래스의 구현을 강제
  • 공통된 기능을 상속 구조로 묶고, 일부만 구체적으로 구현
  • 다형성과 인터페이스 기반 설계를 실현

● 마무리

추상 클래스는 객체지향 설계에서 매우 중요한 개념입니다. 코드의 일관성과 안정성을 높이고, 인터페이스 기반 프로그래밍을 가능하게 합니다. 특히 다양한 하위 클래스가 동일한 메서드 구조를 따르도록 유도할 수 있기 때문에, 유지보수성과 확장성이 크게 향상됩니다.

728x90