Study/CS

[CS] 디자인패턴 - 프록시 패턴(프록시 서버)

dev_kong 2023. 1. 9. 14:50
728x90
728x90

프록시 패턴

프록시 패턴이란?
대상 객체(subject)에 접근하기 전,
그 접근에 대한 흐름을 가로채 대상객체 앞단의 인터페이스 역할을 하는 디자인 패턴이다.

프록시 서버

프록시 서버란
서버와 클라이언트 사이에서 클라이언트가 자신을 통해 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는
컴퓨터 시스템이나 응용 프로그램.

Nginx 프록시 서버

Nginx는 비동기 이벤트 기반의 구조와 다수의 연결을 효과적으로 처리가능한 웹서버이다.
주로 Node.js 서버 앞단의 프록시 서버로 활용된다.(리버스 프록시)

이를 통해 익명 사용자의 직접적인 서버로의 접근을 차단하고, 간접적으로 한단계를 더 거침으로써 보안성을 더 강화할 수 있다.

CloudFlare 프록시 서버

CloudFlare는 전 세계적으로 분산된 서버가 있고,
이를 통해 어떠한 시스템의 콘텐츠 전달을 빠르게 할 수 있는 CDN 서비스 입니다.

CDN 서비스란?
Content Delivery Network의 약자.
지리적 제약 없이 전 세계 사용자에게 빠르고 안전하게 콘텐츠를 전송할 수 있는 콘텐츠 전송 기술을 의미한다.


CDN은 서버와 사용자 사이의 물리적인 거리를 줄여 콘텐츠 로딩에 소요되는 시간을 최소화한다. CDN은 각 지역에 캐시 서버를 배치해,
근접한 사용자의 요청에 원본 서버가 아닌 캐시 서버가 콘텐츠를 전달한다.


예를 들어 미국에 있는 사용자가 한국에 호스팅 된 웹 사이트에 접근하는 경우
미국에 위치한 캐시 서버에서 웹사이트 콘텐츠를 사용자에게 전송하는 방식.

CDN 서비스 이외에도 CloudFlare를 프록시 서버로 사용하여,
얻을 수 있는 장점으로는 DDOS 공격 방어, HTTPS 구축이 있다.

CORS 에러 해결을 위한 프록시서버(포워드 프록시)

CORS 에러란?
Cross-Origin Resource Sharing
브라우저가 동일 출처 정책(Same-Origin Policy, SOP)를 지켜서 다른 출처의 리소스 접근을 금지하기 때문에 발생하는 에러
CORS에 관한 이전 포스팅

보통, 앵간하면 CORS 정책에 관한 에러는 백단에서 처리를 한다.

근데 뭐.. 프론트에서 처리를 해야 한다면,
포워드 프록시를 이용할 수 있다.

728x90
728x90