프록시

박찬우·2024년 2월 14일
0

스프링

목록 보기
37/88

프록시

  • 클라이언트가 요청한 결과를 서버에 직접 요청하는 것이 아니라 어떤 대리자를 통해서 대신 간접적으로 서버에 요청하는 것
  • 대리자를 영어로 프록시(Proxy)라 한다

  • 서버와 프록시는 같은 인터페이스를 사용해야 한다(서버를 대체할 수 있어야함)
  • 클라이언트가 사용하는 서버 객체를 프록시 객체로 변경해도 클라이언트 코드를 변경하지 않고 동작할 수 있어야 한다.

주요 기능

  • 프록시 객체가 중간에 있으면 크게 접근 제어와 부가 기능 추가를 수행할 수 있다
  • 접근 제어
    • 권한에 따른 접근 차단
    • 캐싱
    • 지연 로딩
  • 부가 기능 추가
    • 원래 서버가 제공하는 기능에 더해서 부가 기능을 수행한다.
    • 예) 요청 값이나, 응답 값을 중간에 변형한다.
    • 예) 실행 시간을 측정해서 추가 로그를 남긴다

GOF 디자인 패턴

  • GOF 디자인 패턴에서는 접근 제어, 부가 기능 추가 이 둘을 의도(intent)에 따라서 프록시 패턴과 데코레이터 패턴으로 구분한다.
  • 프록시 패턴: 접근 제어가 목적
  • 데코레이터 패턴: 새로운 기능 추가가 목
profile
진짜 개발자가 되어보자

0개의 댓글