지니, 개발하다.

[CS] 1-5. 프록시 패턴 / 프록시 서버 본문

Study/CS

[CS] 1-5. 프록시 패턴 / 프록시 서버

dev.genii 2023. 4. 29. 10:07

5. 프록시패턴/프록시서버 Proxy Pattern/ProxyServer

  • 프록시 패턴
    • 대상객체(Subject)에 접근하기 전 그 접근에 대한 흐름을 가로채 대상 객체 앞단의 인터페이스 역할을 하는 디자인 패턴
    • 프록시패턴을 통해 객체의 속성, 변환 등을 보완하며 보안/데이터 검증/캐싱/로깅에 사용함
    • 프록시 객체로도 쓰이지만 프록시 서버로도 활용됨

프록시 서버에서의 캐싱
캐시안에 정보를 담아두고 그 정보에 대한 요청처리는 캐시에 담긴 데이터를 활용하는 것
→ 불필요한 외부연결이 없어지므로 트래픽을 줄일 수 있음

  • 프록시 서버
    • 서버와 클라이언트 사이에서 클라이언트가 자신을 통해 다른 네트워크 서비스에 간접 접속할 수 있게 하는 컴퓨터 시스템이나 응용프로그램 임
    • 프록시 서버로 쓰이는 nginx, cloud flare
      • nginx
        • 비동기 이벤트 기반의 구조와 다수의 연결을 효과적으로 처리 가능한 웹서버
        • 주로 Node.js 서버 앞단의 프록시서버로 활용됨
        • overflow 취약점을 예방하기 위해 사용됨
          • overflow버퍼 오버플로우 : 메모리 공간을 벗어나는 경우
          • → 사용되지 않아야할 영역에 덮어 씌워져 주소, 값을 바꾸는 공격이 발생하기도 함
          • 버퍼 : 데이터가 저장되는 메모리 공간
        • 익명사용자의 직접적인 서버접근을 차단하며 보안성을 강화함정적자원을 gzip 압축 가능함
          • gzip
            • 데이터 전송량을 줄일 수 있음
            • 압축해제시 서버에서의 CPU 오버해드도 고려하여 사용해야함
          • LZ77과 Huffman 코딩 조합인 DEFLATE 알고리즘을 기반으로 한 압축기술
        • 메인서버 앞단에서 로깅
        • → 실제 port를 숨길 수 있음
      • cloud flare
        • CDN 서비스사용자가 인터넷에 접속하는 곳과 가까운 곳에서 컨텐츠를 캐싱/배포하는 서버 네트워크
        • 웹서버로부터 컨텐츠를 다운받는 시간 감소
        • Content Delivery Network
        • D Dos 공격 방어
          • D Dos
          • 짧은 기간 동안 네트워크에 많은 요청을 보내 네트워크를 마비시켜 웹사이트 가용성을 방해하는 사이버 공격 유형
          • Cloud Flare는 의심스러운 트래픽, 사용자 접속이 아닌 시스템을 통해 오는 트래픽을 자동으로 차단함→ DDos 공격에 대한 방화벽 대시보드 제공
          • → Cloud Flare의 거대한 네트워크 용량+캐싱전략으로 D Dos 공격을 방어
        • HTTPS 구축
          • HTTPS 구축시 별도의 인증서 없이 Cloud Flare를 사용하여 구축 가능
      • 전 세계적으로 분산된 서버가 있고, 이를 통해 시스템의 컨텐츠를 빠르게 전달할 수 있는 CDN 서비스
  • CORS와 프론트엔드의 프록시 서버
    • CORS서버가 웹브라우저에서 리소스를 로드할때, 다른 오리진을 통해 로드하지 못하게 하는 HTTP 헤더 기반 메커니즘
    • Cross-Origin Resourse Sharing
프록시서버를 만드는 이유

프론트엔드 개발시

프론트엔드 서버와 백엔드 서버가 통신할 때, CORS error를 마주침. 이를 해결하기 위해 프록시서버를 만듦

예)

프론트엔드 127.0.0.1:3000

백엔드 127.0.0.1:1201

이 때, CORS 에러

이 때 프록시서버를 두고 프론트서버에서 요청되는 origindmf 127.0.0.1:1201 로 바꿈

'Study > CS' 카테고리의 다른 글

[CS] 1-7. 노출 모듈 패턴  (0) 2023.04.29
[CS] 1-6. 이터레이터 패턴  (0) 2023.04.29
[CS] 1-4. 옵저버 패턴  (0) 2023.04.28
[CS] 1-3. 전략 패턴  (0) 2023.04.28
[CS] 1-2. 팩토리 패턴  (0) 2023.04.28
Comments