대상 객체(subject)에 접근하기 전 그 접근에 대한 흐름을 가로채 대상 객체 앞단의 인터페이스 역할을 하는 디자인 패턴
서버 앞단에 두어 캐싱, 로깅 등에 활용하는 프록시서버가 대표적이다.
어떤 사용자가 프록시 개체를 통해 대상 객체로 들어간다.
전 세계적으로 분산된 서버가 있고, 이를 통해 어떠한 시스템의 콘텐츠 전달을 빠르게 할 수 있는 CDN(Content Delivery Network) 서비스이다.
그림처럼 사용자, 크롤러, 공격자가 자신의 웹사이트에 접속하게 되는데, 이때 CloudFlare를 통해 공격자로부터 보호할 수 있다.
CORS는 서버가 웹 브라우저에서 리소스를 로드할 때 다른 오리진을 통해 로드하지 못하게 하는 HTTP 헤더 기반 메커니즘이다.
프론트엔드 개발 시 프론트엔드 서버를 만들어서 백엔드 서버와 통신할 떄 주로 CORS 에러를 마주치는데, 이를 해결하기 위해 프론트엔드에서 프록시 서버를 만들기도 한다.
프로토콜과 호스트 이름, 포트의 조합을 말한다.
https://kundol.com:12010/test 라는 주소에서 오리진은
https://kundol.com:12010 을 뜻한다.
위의 그림처럼 프론트엔드 서버 앞단에 프록시 서버를 놓아 /api 요청은 users API, /api2요청은 users API2에 요청할 수 있다. 자연스레 CORS 에러 해결은 물론이며 다양한 API 서버와의 통신도 매끄럽게 할 수 있다.