
대상 객체에 접근하기 전 그 접근에 대한 흐름을 가로채 대상 객체 앞단의 인터페이스 역할을 하는 디잔인 패턴이다. 객체의 속성, 변환 등을 보완 가능하며 보안, 데이터 검증, 캐싱, 로깅에 사용된다.
캐시 안에 정보를 담아 요구하는 요청에 대한 데이터를 서버로 요청하지 않고 캐시에 있는 데이터를 활용하는 것이다.
서버와 클라이언트 사이에서 클라이언트가 자신을 통해 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 서버를 말한다. Nginx, CloudFlare가 프록시 서버로 사용되는 예이다. Node.js를 사용할 때 버퍼 오버플로우 취약점을 방지하기 위해 앞단에 프록시 서버로 Nginx가 사용된다.
프록시 서버는 익명의 사용자가 직접적인 서버 접근을 막아주고 한 단계를 더 거침으로써 보안성을 높여준다. 실제 서버가 사용하는 포트를 숨기고 앞단에서 로깅을 할 수 있다.
버퍼는 보통 데이터가 저장되는 메모리 공간으로, 메모리 공간을 벗어나는 경우를 말한다. 사용되지 않아야 할 영역에 데이터가 사용되어 공격이 발생하기도 한다.
콘텐츠 전송 네트워크(CDN)는 데이터 사용량이 많은 애플리케이션의 웹 페이지 로드 속도를 높이는 상호 연결된 서버 네트워크이다. DDOS 공격 방어 및 HTTPS 구축에 이점이 있다.
짧은 기간 동안 네트워크에 많은 요청을 보내 마비시키는 공격으로 CloudFlare는 의심스러운 트래픽과 사용자가 아닌 시스템을 통하는 트래픽을 자동으로 차단해준다.
서버는 인증서를 기반으로 HTTPS를 구축한다. 하지만 CloudFlare를 사용하면 별도의 인증서 설치 없이 손쉽게 구축이 가능하다.
CORS(Cross-Origin Resource Sharing)는 서바가 웹 브라우저에서 리소스를 로드할 때 다른 오리진을 통해 로드하지 못하게 하는 HTTP 헤더 기반 메커니즘이다.
프론트엔드에서 테스팅을 하는데 서보와 포트 번호가 다른 경우 CORS 에러가 발생하는데 이때 프록시 서버를 둬서 포트를 서버에 맞게 바꿔 맞춰주는 것이다.