[디자인패턴] 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

keepgoing