[CS] 프록시 패턴(proxy pattern)CS/CS2022. 9. 20. 21:56
Table of Contents
프록시 패턴(proxy pattern)이란?
- 대상 객체에 접근하기 전 그 접근에 대한 흐름을 가로채 객체 앞단의 인터페이스 역할을 하는 디자인 패턴
ㄴ 객체의 속성, 변환 등을 보완하며 보안, 데이터 검증, 캐싱, 로깅에 사용.
더보기
프록시 서버에서의 캐싱 :
캐시 안에 정보를 담아두고, 캐시 안에 있는 정보를 요구하는 요청에 대해 다시 저 멀리 있는 원격 서버에 요청하지 않고 캐시 안에 있는 데이터를 활용하는 것을 말함. 불필요하게 외부와 연결하지 않기 때문에 트래픽을 줄일 수 있음.
//프록시 코드 예시
package com.programmers.java.proxyPattern;
public interface Subject {
String request();
}
package com.programmers.java.proxyPattern;
public class RealSubject implements Subject {
@Override
public String request() {
return "HelloWorld";
}
}
package com.programmers.java.proxyPattern;
public class Proxy implements Subject {
private final RealSubject realSubject = new RealSubject();
@Override
public String request() {
return realSubject.request(); //프록시가 실제의 메소드를 호출한다.
}
}
package com.programmers.java.proxyPattern;
public class Main {
public static void main(String[] args) {
// Subject클래스의 메소드를 호출하는것이아닌 프록시클래스의 메소드를 호출한다.
Subject subject = new Proxy();
System.out.println(subject.request()); // 내부적으로 Subject의 메소드를 호출한다.
}
}
프록시 서버로 쓰이는 CloudFlare
ㄴ CDN 서비스의 일종
더보기
CDN :
콘텐츠 전송 네트워크(CDN)는 데이터 사용량이 많은 애플리케이션의 웹 페이지 로드 속도를 높이는 상호 연결된 서버 네트워크. 즉, 콘텐츠 전송 네트워크 또는 콘텐츠 배포 네트워크를 의미.
- DDOS 공격을 방어 할 수 있음
- HTTPS를 인증서 기반 구축 대신 손쉽게 할 수 있음
CORS(Cross-Origin Resource Sharing)와 프런트엔드의 프록시 서버
- 서버가 웹 브라우저에서 리소스를 로드할 때 다른 오리진을 통해 로드하지 못하게하는 HTTP 메커니즘
ㄴ 프론트엔드 개발시 프론트엔드 서버를 만들어서 백엔드 서버와 통신할 때 주로 CORS 에러가 나는데, 이를 해결하기 위해 프론트엔드에서 프록시 서버를 만들기도 함.
'CS > CS' 카테고리의 다른 글
[CS] 싱글톤 패턴(singleton pattern) (1) | 2022.09.20 |
---|---|
[CS] 전략 패턴(strategy pattern, 정책 패턴(policy pattern) (0) | 2022.09.20 |
[CS] 이터레이터 패턴(iterator pattern) (0) | 2022.09.20 |
[CS] 프로그래밍 패러다임(Programming paradigm) (0) | 2022.09.20 |
[CS] 팩토리 패턴(factory pattern) (1) | 2022.09.20 |
@Yanako :: Yana's coding story였는데요, 우당탕탕 개발일지가 맞는것같
야나의 코딩 일기장 :) #코딩블로그 #기술블로그 #코딩 #조금씩,꾸준히
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!