본문 바로가기

프록시 패턴2

2024-07-31 학습일기 스프링 프록시 패턴 프록시의 주요 기능은 접근 제어이다.캐시도 접근 제어의 한 종류라고 볼 수 있다.이미 한번 조회한걸 빠르게 조회하기 위함이미 개발된 로직을 전혀 수정하지 않고 프록시 객체를 통해 캐시를 적용하려면 어떻게 해야할까 Subject라는 인터페이스를 만들고 이걸 실제로 구현한 RealSubject라는 구현체를 만든다.이때 RealSubject에서 1초 걸린다고 가정하면세 번 호출시 각각 1초씩 걸리므로 3초가 걸린다.하지만, 만약 조회하는 내용이 같다면 이건 손해가 될 수 있다.따라서, 프록시를 통해 캐시 형태로 사용하면 더 빨리 조회할 수 있다.그렇기 위해 CacheProxy라는 것을 하나 만들고 필드로 RealSubject를 주입받는다.또한, Cache 값을 저장하기 위한 필드를 하나더 .. 2024. 7. 31.
[Design Pattern] 프록시 패턴 이번 포스팅은 디자인 패턴 중 하나인 프록시 패턴에 대해 알아본다. 코드와 상황은 전략 패턴에서 사용했던 코드와 상황을 가져간다. 만약 문지기가 동물들을 쫓아내기 전에 무엇인가 할 행동이 추가되었다고 생각해보자. 그렇다면 코드는 다음과 같이 작성할 수 있을 것이다. DoorMan public class DoorMan { public void 쫓아내(Animal a){ System.out.println("안녕 ㅎㅎ"); System.out.println(a.getName() + " 쫓아내"); } } 할 행동이 잘 출력되는 것을 확인할 수 있다. 하지만, 이는 SOLID 원칙의 O(OCP - 개방 페쇄 원칙)에 위배된다. 당연하다. 기존에 있던 DoorMan을 수정했기 때문이다. 그렇기에 SOLID 원칙에.. 2024. 3. 12.