Proxy Server

Feb 14, 2024
Proxy Server

1. 프록시(PROXY) : 대리인

클라이언트와 서버 사이에 위치하여 클라이언트 요청을 대신 받아 서버로 전달,
서버의 응답을 대신 받아 클라이언트로 전달하는 중간 서버
  • 포워드 프록시 : 중국을 빠져나올때 막히는 것
클라이언트가 외부 리소스에 접근할 때 클라이언트의 요청을 받아 외부 리소스로 전달
  • 리버스 프록시 : 중국을 빠져나가서 구글앞에서 막히는것
서버의 앞단에 위치하여 클라이언트의 요청을 받아 백엔드 서버로 전달
  • 프록시 클래스 → 프록시 이메일을 바라보고 의존 → 프록시를 바꿔 끼울 수 있음
객체 지향 프로그래밍에서 다른 객체에 대한 접근을 제어하는 용도로 사용
  • 델리게이트 필터 프록시 : 위임하는 프록시, 대리인
서블릿 필터의 동작을 대리(delegate)하며 필터의 처리를 커스터마이징할 수 있도록 지원
 

2. 시스템 확장 방법

  • 웹은 무조건 IO가 일어남
 
1) Scale Up
단일 서버 또는 장비의 성능을 향상시켜 시스템을 확장하는 방법
notion image
메모리가 들어오면 CPU가 분석해서 HDD에 기록
blocking = IO가 일어나는 동안 CPU는 멍 때리게 됨
⇒ 연산만 할 때는 CPU 성능 올리기 = 스케일 업
 
2) Scale Out
시스템을 확장하기 위해 여러 개의 서버 또는 노드를 추가하는 방법
⇒ IO가 일어나는 것은 분산 처리해야 함 = 스케일 아웃
 
  • MapReduce : 대규모 데이터 집합을 분산 처리하는 데 사용되는 프로그래밍 모델
대량의 데이터를 빠르게 처리하고 분석하는 데 유용하며, 주로 분산 컴퓨팅 환경에서 사용
 
  • IO가 일어나는 것은 NIO(Non-blocking I/O)가 되어야 함
→ blocking을 줄이는 방식으로 웹 서버를 구현해야 함
 
Share article

vosw1