seong
자바 디자인패턴 - Proxy패턴 본문
Proxy패턴이란?
Proxy패턴은 쉽게 말해 요청과 응답에 필터링 역할이 생긴다.
서버의 요청과 응답 전에 Proxy를 거쳐 필터링(문지기) 역할을 수행 하게된다.
코드를 보면 Adapter과 비슷하게 생겼지만 엄연히 다른 역할을 하고 있다.
Adapter패턴
1. 클라이언트의 요청으로 기존의 코드에서 기능이 필요함.
2. 기존의 코드를 복제한 후 기능을 추가
여기까지 1. 기존의 코드 2. 기능이 추가된 Adapter코드가 있다.
3. 클라이언트의 요청에 의해 Adapter로 통과해 실행 하거나, or 기존의 코드를 통과할 수 있다.
Proxy패턴
1. 클라이언트가 요청을 한다.
2. Proxy를 거쳐서 서버에 요청된다.
3. 서버에서 처리한 후 다시 Proxy를 거쳐서 클라이언트에 응답된다.
즉, 서버 전, 후로 처리를 할 수 있게된다.
실습 코드
이전 패턴 공부와 마찬가지로 전략 패턴을 지키면서 작성
BlogServer.java
package proxy;
public class BlogServer implements Server{
@Override
public void request() {
System.out.println("요청을 받음");
}
}
ProxyServer.java
프록시는 블로그를 생성자로 주입 받아 블로그 요청을 변경해서 서버로 전달해준다.
package proxy;
public class ProxyServer implements Server{
private Server server;
public ProxyServer(BlogServer server) {
this.server = server;
}
@Override
public void request() {
System.out.println("json을 자바 오브젝트로 변환");
server.request();
System.out.println("자바오브젝트를 json으로 변환");
}
}
Server.java
package proxy;
public interface Server {
void request();
}
ProxyApp( Main이 실행될 부분 )
package proxy;
public class ProxyApp {
public static void main(String[] args) {
//BlogServer s = new BlogServer();
ProxyServer ps = new ProxyServer(new BlogServer());
ps.request();
}
}
결과 확인
요청할 때 Json -> 자바 오브젝트로 변환 되어서 왔다고 가정.
프록시 서버에서 요청을 받으면 자바 오브젝트 -> Json으로 변환해서 메인 서버에 전달 해준다.
'자바 > 자바 실습' 카테고리의 다른 글
자바 디자인패턴 - Adapter패턴, FakeAdapter 예시 (0) | 2022.09.26 |
---|---|
자바 디자인패턴 - OCP, 전략 패턴 (0) | 2022.09.26 |
자바 디자인패턴 - 싱글톤 패턴 원리 (0) | 2022.09.26 |
공공데이터 다루기 (JSON) (0) | 2022.08.23 |
Thread - 스레드를 이용한 소켓 통신 (0) | 2022.08.23 |