퍼사드 패턴이란?
위키백과
객체 지향 프로그래밍 분야에서 자주 쓰인다. Facade (외관)는 "건물의 정면"을 의미한다.
퍼사드는 클래스 라이브러리 같은 어떤 소프트웨어의 다른 커다란 코드 부분에 대한 간략화된 인터페이스를 제공하는 객체이다.
특징
•
이해하기 쉽게 만들어준다.
•
단순한 인터페이스를 이용하고 싶은 경우 퍼사드를 사용한다.
토막 상식 및 필자의 경험
실제로 파사드 디자인이라는 것은 건축물에서 찾아볼 수 있다. 이는 필자가 교양 수업인 실내디자인 강의를 통해서 알고 있었다. 그래서 이 디자인 패턴은 건축물의 얼굴을 만든다고 생각하면 엄청 쉽게 느껴 질 것이다.
위의 건물 외관 디자인을 예시로 한번 퍼사드 패턴을 만들어보자.
우리는 시드니 오페라 하우스의 외관을 꾸며야 한다고 가정해보자. 모양도 복잡해서 작업이 매우 힘들다. 또한 색을 시즌 별로 변경해야 한다면 어떨까? 매번 엄청난 비용이 들 것이다.
퍼사드 패턴을 적용한 밤의 오페라 하우스
오페라 하우스를 바꾸는 작업 즉, 오페라 하우스 자체를 직접적으로 건드리는 건 비용도 많이 들고 변경에 취약하다. 그래서 우리는 오페라 하우스의 외관을 쓰긴 하되 변경이 쉽도록 눈속임만 하는 것이다. 그래서 빔을 이용해서 오페라 하우스의 외관을 꾸민 것이다. 이를 통하여 외관의 모양을 그대로 살리면서 오페라 하우스를 건들지는 않게 된다.
출처: https://spinifexgroup.com/
클라이언트, 퍼사드, 라이브러리의 관계
퍼사드 패턴은 다음과 같은 관계를 가진다. 기존에 관광객이 오페라 하우스를 바라볼 때 오페라 하우스의 복잡한 모양을 먼저 보고 인식하고 해석한다. 하지만 오페라 하우스의 외관에 카세트 테이프의 영상을 비췄을 때는 관광객이 카세트 테이프를 바라보게 되는 것이다. 이걸 라이브러리와 클라이언트의 관계로 해석해보자면 기존에는 복잡한 라이브러리를 직접 사용했다면 퍼사드를 이용하여 클라이언트가 퍼사드를 인식하게 만드는 것이다.
퍼사드 패턴 이해하기
퍼사드 패턴이란?
위키백과
객체 지향 프로그래밍 분야에서 자주 쓰인다. Facade (외관)는 "건물의 정면"을 의미한다.
퍼사드는 클래스 라이브러리 같은 어떤 소프트웨어의 다른 커다란 코드 부분에 대한 간략화된 인터페이스를 제공하는 객체이다.
•
이해하기 쉽게 만들어준다.
•
단순한 인터페이스를 이용하고 싶은 경우 퍼사드를 사용한다.
이 패턴을 더 쉽게 설명할 수 있는 것은 사실 컴퓨터 전원을 키는 것이다. 컴퓨터 전원을 켜기 위해 사용자는 단순히 버튼만 누르면 된다. 근데 버튼을 누른다는 행위가 cpu에 전원을 공급하고, 팬을 돌리고, 부팅 시키고, 모니터를 키는 등 아주 많은 일을 하게 만든다. 이 자체가 퍼사드이다. 그런데 사실 실내 디자인을 강의를 들으면서 내가 느낀 것을 같이 공유해보고 싶어 만들어 봤다.