본문 바로가기

Design Pattern

Proxy Pattern

728x90
반응형

# Proxy Pattern 관련 내용 정리

1. Proxy Pattern이란?

프록시 패턴(Proxy Pattern)은 디자인 패턴 중 하나로, 어떤 객체에 대한 접근을 제어하거나, 그 객체에 대한 요청을 처리하기 위해 대리자 또는 대변인 역할을 하는 객체를 생성하는 패턴이다.

프록시 패턴은 실제 객체와 같은 인터페이스를 가지며, 클라이언트는 실제 객체 대신 프록시를 사용하여 작업을 수행한다.  

프록시 패턴은 다음과 같은 경우에 사용된다:  
원격 프록시(Remote Proxy): 원격 객체에 대한 로컬 인터페이스를 제공한다. 예를 들어, 원격 서버에 있는 객체에 대한 로컬 인터페이스를 제공할 수 있다.  
가상 프록시(Virtual Proxy): 필요에 따라 복잡한 또는 시간이 많이 소요되는 작업을 수행하는 객체를 생성한다.  
보호 프록시(Protection Proxy): 원래 객체에 대한 접근 권한을 제어한다.  
스마트 프록시(Smart Proxy): 원래 객체에 대한 요청을 가로채서 추가적인 작업을 수행한다. 예를 들어, 원래 객체에 대한 요청 전후로 추가적인 작업을 수행하거나, 원래 객체에 대한 요청을 캐싱하는 등의 작업을 수행할 수 있다.  
아래의 Github에 업로드된 프로젝트에서는 UserServiceProxy 클래스가 프록시 패턴을 사용하고 있다.

UserServiceProxy는 UserService 인터페이스를 구현하며, UserServiceImpl을 프록시로 사용한다.

getUser(String id) 메서드 호출 전후에 로깅을 수행하는 등의 추가적인 기능을 제공한다.

이렇게 하면 UserServiceImpl의 코드를 변경하지 않고도 추가적인 기능을 제공할 수 있다.

- 소스코드는 아래의 github에 업로드 되어 있다.

https://github.com/Nanninggu/Proxy-Pattern

 

GitHub - Nanninggu/Proxy-Pattern: About Proxy-Pattern

About Proxy-Pattern. Contribute to Nanninggu/Proxy-Pattern development by creating an account on GitHub.

github.com

 

- 끝 -

728x90
반응형

'Design Pattern' 카테고리의 다른 글

Observer-Pattern  (0) 2024.05.25
Adapter-Pattern  (0) 2024.05.24
Builder Pattern  (0) 2024.05.17
디자인 패턴 정리  (0) 2024.05.15
Transactional Outbox Pattern  (0) 2024.05.14