📚 CS/그 외

[CS] 디자인 패턴 - 구조 패턴

수댕ʕت̫͡ʔ 2024. 11. 20. 18:56

디자인 패턴 중 구조패턴에 대해서 알아보자.

1. 구조 패턴

구조 패턴은 객체나 클래스를 활용해 큰 구조를 만들 때, 그 구조를 효율적이고 유연하게 설계하는 방법을 제공하는 디자인 패턴이다. 

 

구조 패턴의 종류로는 프록시, 어댑터, 브리지, 복합체, 데코레이터, 퍼사드, 플라이웨이트 패턴이 있다.

 

주요 패턴인 프록시 패턴을 자세하게 살펴보자면 다음과 같다.

 

1-1 프록시 패턴 (Proxy Pattern)

프록시 패턴은 어떤 객체에 접근하기 전, 그 접근을 제어하거나 추가적인 작업을 수행하기 위해 중간계층 프록시를 두는 디자인 패턴이다. 

 

예를 들어, 클라우드와 서버 사이에서 많이 사용된다. http와 https 트래픽을 관리하거나, 배포 환경에서 Cloudflare와 같은 서비스로 대규모 트래픽을 필터링하고 보안을 강화하는데 활용된다. 

 

[장점]

  • 접근 제어 : 객체에 대한 접근 제한이나 권한 검사를 쉽게 구현할 수 있다.
  • 성능 최적화 : 프록시를 통해 요청을 캐싱하거나, 불필요한 리소스 로드를 방지할 수 있다.
  • 유연성 : 실제 객체를 수정하지 않고도, 접근 로직을 독립적으로 관리할 수 있다.

[단점]

  • 추가 복잡성 : 프록시 계층이 추가되면서 코드 구조가 복잡해질 수 있다.
  • 지연 시간 증가 : 요청이 프록시를 거치면서 실행 속도가 느려질 수 있다.