Proxy

youngkyu MIn·2023년 10월 15일

프록시

프록시는 다른 객체의 대리자 또는 대행자 역할을 하는 객체를 의미한다.
프록시는 대상 객체에 대한 접근을 제어하고, 이 객체에 대한 연산을 가로채거나, 추가적인 처리를 할 수 있다. 이렇게 함으로써 시스템의 부분적인 분리와 관심사의 분리(Separation of Concerns)를 도모하며, 보안, 로깅, 트랜잭션 처리 등 다양한 이슈를 보다 효과적으로 다룰 수 있다.


프록시의 주요 유형

1 Virtual Proxy: 객체 생성에 관련된 비용이 큰 경우, 실제 필요할 때까지 객체의 생성을 지연시키는 프록시다.

2 Protection Proxy: 객체에 대한 접근 제어를 수행하여, 특정 사용자만이 객체의 메서드를 실행할 수 있도록 한다.

3 Remote Proxy: 네트워크 통신 비용이나 복잡성을 추상화하여, 원격 객체를 로컬 객체처럼 다루게 한다.

4 Cache Proxy: 고비용의 연산 결과를 캐시하여, 동일한 요청이 있을 때 빠르게 결과를 제공한다.

5 Smart Proxy: 참조 카운팅, 로깅, 동기화 등 추가적인 기능을 제공한다.


프록시 패턴의 구성 요소

1 ubject: Real Subject와 Proxy가 공유하는 인터페이스다.

2 Real Subject: 실제 기능을 구현하는 클래스다.

3 Proxy: Real Subject에 대한 참조를 유지하며, 클라이언트의 요청을 Real Subject에 전달하고, 그 결과를 클라이언트에 반환한다. 이 과정에서 추가적인 작업(접근 제어, 로깅 등)을 수행할 수 있다.


Proxy in Spring Boot

Spring 프레임워크에서는 프록시를 이용해 AOP를 구현한다. Spring AOP는 두 가지 주요 프록시 방법을 제공한다.

profile
한 줄 소개

0개의 댓글