스프링/스프링 핵심 원리 - 고급편

28. 프록시 패턴과 데코레이션 패턴

sdafdq 2024. 1. 19. 12:45

프록시 직역은 대리자

 

말 그대로 대리 처리

예를 들어 이런 걸

 

이렇게. 

 

앞에서 먼저 한번 필요한 걸 처리한 뒤 넘길 수 있다.

 

이렇게 하면 할 수 있는게 어떤 접근을 보고 차단할 수도 있고, 요청 데이터를 가공한다든지 등 할 수 있다.

 

이런 것도 가능

 

 

그래서, 이걸 클라이언트 로직에 손 댈 필요 없이 하려면,

 

이렇게 서버를 인터페이스로 둬서 서버로직과, 프록시 서버 로직으로 나눔.

 

그 후 클라이언트가 인터페이스에 의존하게 만들고 의존성 주입하면 됨.

 

 

프록시 패턴은 개념임.

클라이언트 -> 서버 간에도 프록시가 가능하고,

객체 -> 객체 간에도 프록시가 가능함.

 

저렇게 중간에 대리자가 있으면 크게 2가지 일을 할 수 있는데,

접근 제어

특정 요청에 대한 접근 차단, 캐싱, 지연로딩

 

부가기능 추가

원래 서버의 기능 + 부가기능

예를 들면 시작시간과 끝 시간 로그를 남긴다던지..

요청값이나 응답값을 가공해서 보낸다던지

 

둘다 형태는 같은데,

 

의도에 따라서 접근제어는 프록시 패턴,

부가기능 추가는 데코레이션 패턴 이라고 함.