Programming/Design Pattern
✅ [프록시 패턴 완벽 이해] 프록시 서버부터 UML, 활용 사례까지 총정리!
추천캐릭터
2022. 10. 30. 20:56
728x90
반응형
🌐 프록시란 무엇인가요?
프록시(Proxy) 패턴은 다른 객체를 대신해 행동하는 객체를 말합니다.
가장 흔한 예로 우리가 자주 접하는 프록시 서버가 있습니다.
프록시는 클라이언트와 실제 서비스 객체 사이의 중계자 역할을 수행합니다.
프록시는 클라이언트가 직접 실제 객체에 접근하지 못하도록 중간에서 대리 처리하는 보호막입니다.
📘 프록시 패턴의 구조 (UML 클래스 다이어그램)
🔹 1. Service Interface
- 서비스의 공통 인터페이스를 정의합니다.
- 실제 객체와 프록시 객체가 모두 이 인터페이스를 구현합니다.
🔹 2. Proxy
- 실제 서비스 객체에 대한 **참조(Reference)**를 갖습니다.
- 클라이언트는 프록시를 통해 마치 진짜 서비스 객체처럼 사용할 수 있습니다.
- 프록시는 흐름 제어나 접근 제어만 담당하며 결과를 조작하지는 않습니다.
🔹 3. Real Service
- 실제로 비즈니스 로직을 처리하는 핵심 객체입니다.
🧠 활용 사례
종류설명
| 🔹 원격 프록시 (Remote Proxy) | 원격 서버의 객체를 로컬에서 다루듯 사용할 수 있도록 해줌 |
| 🔹 가상 프록시 (Virtual Proxy) | 무거운 객체의 생성을 지연시켜 성능 최적화 |
| 🔹 보호 프록시 (Protective Proxy) | 접근 제어와 인증을 통해 보안 강화 |
| 🔹 스마트 프록시 (Smart Proxy) | 접근 전후에 로깅, 캐싱 등 부가 기능 수행 |
✅ 장점 요약
- 🔐 보안성 향상: 실제 객체에 대한 직접 접근을 차단
- 🌐 원격 접근 지원: 원격 객체를 로컬처럼 다룰 수 있음
- ⚡ 성능 최적화: 무거운 객체를 캐싱 또는 지연 초기화 가능
⚠️ 단점도 존재합니다
- 🐢 초기 응답 지연: lazy initialization 시 응답 속도 저하
- 🧩 구조 복잡성 증가: 객체 구조가 복잡해질 수 있음
💡 실제 사용 예
- 웹 프록시 서버
- 스프링 AOP 프록시
- 데이터베이스 연결 풀 (Connection Proxy)
- 보안 접근 필터
728x90
반응형