[디자인패턴] 3 프록시 패턴(Proxy Pattern)

김호정's avatar
Aug 13, 2024
[디자인패턴] 3 프록시 패턴(Proxy Pattern)
프록시 = 대리인
 
스프링 프레임워크에서는 내부적으로 프록시 기술을 많이 사용하고 있다.
(예. 스프링 AOP 관점지향 프로그래밍)
notion image
밥먹기(핵심로직)에 집중할 수 있게 전후로 이루어지는 손씻기와 양치하기는 프록시 서버가 한다.
내가 코드짤때 핵심 로직에만 집중할 수 있게 나머지 코드는 proxy가 책임질게!
 
 
notion image
포워드 프록시, 리버스 프록시
Youtube(나)에게 가까이 있는게 reverse proxy
 
저기 인도로 우회해서 미국 유튜브로 접속하는게 아마 VPN
 
? ) VPN이랑 Proxy랑 같은건가?
 
jsp의 action 어쩌고... 프록시로 코드 분리할 수 있다고 함
 
프록시 패턴의 장점
단일 책임 원칙(SRP)과 개방 폐쇄 원칙(OCP)을 준수할 수 있음 → 서비스나 클라이언트들을 변경하지 않고도 새 프록시들을 도입할 수 있음
 
앞서 작성한 도어맨과 동물들 코드에서 도어맨이 쫓아내 매서드를 실행하기 전에
안녕이라고 인사하는 걸 추가하고 싶다면? (기존 코드 수정 없이)
프록시도어맨을 만들어라.
 
notion image
 
doorman을 composition을 사용해서 doormanProxy가 사용할 수 있게 해줌
 
? ) composition이 뭐지.
notion image
notion image
notion image
notion image
doormanProxy는 doorman이 아니기 때문에 상속 X , 컴포지션 사용.(has-a)
 
 
 
//
notion image
 
기존의 Doorman은 코드 수정 없이 쫓아내 매서드를 가지고 있다..
notion image
App을 보면, doorman이 아닌 doormanProxy를 사용해서(doorman은 생성자 주입)
doormanProxy에 있는 안녕을 포함한 쫓아내 매서드를 실행시킨다.
 
Share article