[python] 퍼사드 디자인 패턴

퍼사드 디자인 패턴은 소프트웨어 개발에서 사용되는 구조적 디자인 패턴 중 하나입니다. 이 패턴은 복잡한 서브시스템에 대한 단순한 인터페이스를 제공하고, 서브시스템을 쉽게 사용할 수 있게 해줍니다.

패턴 구조

퍼사드 디자인 패턴은 세 가지 주요 컴포넌트로 구성됩니다.

  1. 퍼사드(Facade): 복잡한 서브시스템의 단순한 인터페이스를 제공합니다. 이 컴포넌트는 클라이언트와 서브시스템 사이의 인터페이스 역할을 수행합니다.

  2. 서브시스템(Subsystem): 퍼사드에 의해 단순화된 인터페이스를 제공하는 컴포넌트입니다. 이 컴포넌트는 실제 작업을 수행하며, 퍼사드에 의해 감싸진 형태로 존재합니다.

  3. 클라이언트(Client): 퍼사드를 통해 서브시스템을 사용하는 주체입니다. 클라이언트는 간단한 인터페이스를 통해 퍼사드에 요청을 보내고, 퍼사드는 이를 서브시스템으로 전달합니다.

예제

다음은 퍼사드 디자인 패턴을 이용한 간단한 예제입니다. 이 예제에서는 랩톱 컴퓨터의 부팅 과정을 퍼사드로 단순화시킵니다.

class PowerButton:
    def __init__(self, sub_system):
        self.sub_system = sub_system
    
    def press(self):
        print("전원 버튼을 누릅니다.")
        self.sub_system.power_on()
        self.sub_system.boot()

class SubSystem:
    def power_on(self):
        print("전원을 켭니다.")
    
    def boot(self):
        print("부팅 중입니다.")

sub_system = SubSystem()
power_button = PowerButton(sub_system)
power_button.press()

위 예제에서는 PowerButton이 퍼사드 역할을 하고, SubSystem이 서브시스템 역할을 합니다. PowerButtonpress 메서드를 호출하면 퍼사드는 실제로 전원을 켜고 부팅을 시작합니다.

퍼사드 디자인 패턴의 장점

결론

퍼사드 디자인 패턴은 복잡한 서브시스템을 사용하기 쉬운 인터페이스로 감싸서 단순화시키는 디자인 패턴입니다. 이 패턴을 사용하면 코드를 더욱 관리하기 쉽게 만들 수 있고, 유연하게 확장할 수 있습니다.