Facade Pattern이란?
facade를 사전에서 검색하면 '(건물의) 정면[앞면]' 이란 의미가 나온다. 디자인 패턴의 분류(생성, 행위, 구조) 중에서 구조(structure)에 관한 패턴을 말한다. 건물의 정면처럼 외부에서 봤을 때 보여지는 부분에 대한 인터페이스를 제공한다.
다시 말하면, Facade Pattern은 여러 서브 시스템 인터페이스에 대한 통합 인터페이스를 제공하여 서브 시스템을 보다 쉽게 사용할 수 있는 상위레벨 인터페이스를 정의하는 것을 말합니다.
Facade Pattern의 장점은 무엇인가?
Facade는 클라이언트의 요청을 수행할 수 있는 서브시스템으로 전달합니다. 대부분의 경우 하나의 요청 둘 이상의 서브시스템에 위임됩니다. 이 때, Facade는 클라이언트와 서브시스템 사이에 커플링을 낮게 합니다. Facade는 클라이언트에게 서브시스템의 복잡한 상세 내용을 숨기고 간단한 인터페이스를 제공하고 디커플 되게 하기 때문에 나중에 서브시스템을 수정하기도 쉽게 하는 장점이 있습니다.
Facade Pattern의 단점은 무엇인가?
Facade에 모든 것을 구현하려고 하면 Facade가 커플링이 높아져서 문제가 될 수 있습니다.
Facade Pattern 구현
-
Facade Pattern의 활용
서비스에서 제공하는 Api List가 있고, 외부 시스템 A사, 외부 시스템 B사 등에 해당 Api를 제공해야 할 때 사용할 수 있다. 이렇게 하면 권한 체크, 로깅, 시스템별 다른 기능 추가, 시스템별 사용량 체크, 허용된 api만 제공 등등 많은 장점을 가질 수 있다. 연동 하는 외부 시스템사가 많아지면 문제가 있을 수 있지만 일정량 이하고 효율적이라고 판단 되면 Facade 패턴의 사용을 권장한다.
Facade Pattern의 실제 적용사례
-
'designpattern' 카테고리의 다른 글
Builder Pattern (0) | 2020.01.19 |
---|---|
디자인 패턴 (0) | 2020.01.19 |