프록시
- 클라이언트가 요청한 결과를 서버에 직접 요청하는것이 아니라 어떤 대리자를 통해 대신 간접적으로 서버에 요청할 수 있다. 여기서 대리자를 프록시 라고 한다.
프록시의 주요 기능
- 접근 제어, 캐싱
- 권한에 따른 접근 차단
- 캐싱
- 지연 로딩
- 부가 기능 추가
- 원래 서바가 제공하는 기능에 더해서 부가 기능을 수행 (ex - 요청 값 / 응답 값을 중간에 변형, 로그)
- 프록시 체인
* 클라이언트는 서버에게 요청 한 것인지, 프록시에게 요청 한 것인지 몰라야한다.
* 서버와 프록시는 같은 인터페이스를 사용 -> 클라이언트가 사용하는 서버 객체를 프록시 객체로 변경해도 클라이언트 코드를 변경하지 않고 동작할 수 있어야 한다. (DI 사용)
프록시 패턴 - 접근 제어가 목적
데코레이터 패턴 - 새로운 부가 기능 추가가 목적
* 둘다 프록시를 사용하지만 GOF 디자인 패턴에서는 이 둘을 의도에 따라 구분
'Spring' 카테고리의 다른 글
[Spring] 빈 후처리기 - BeanPostProcessor (0) | 2021.11.08 |
---|---|
[Spring] 프록시 팩토리 (0) | 2021.11.08 |
[Spring] 전략 패턴 (0) | 2021.11.05 |
[Spring] 템플릿 메서드 패턴 (0) | 2021.11.05 |
[Spring] 동시성 문제 + 해결 방법 (쓰레드 로컬) (0) | 2021.11.05 |