📌 Proxy Pattern
Proxy는 대리인이라는 뜻으로써, 뭔가를 대신해서 처리하는 의미이다.
Proxy Pattern 에서는 Proxy class를 통해서 대신 전달하는 형태 로 설계되며,
실제 Client는 Proxy로 부터 결과를 받는다.
Proxy Pattern을 Cache 기능으로 활용한 예를 살펴보자.
Proxy Pattern 을 거치치 않으면
브라우저에서 요청을 할 때마다 새롭게 로딩을 해야한다.
이때 로딩해온 값을 저장 해 놓으면 좋은데, 그 역할을 Proxy 로 해줄 수 있다.
BrowserProxy loading html from : www.naver.com
BrowserProxy use cache : www.naver.com
스프링에서는 AOP가 이 패턴을 따르고 있다.
AOP는 특정한 메소드가 있으면 이 메소드에 실행시간이라던지,
특정한 패키지의 특정한 메소드의 실행시간 전후로 기능을 넣을 수 있어서 메소드를 측정할 때 쓰인다.
show라는 메소드가 걸린 시간이 처음엔 1.5(1513)초
다음에는 cache가 걸려있기 때문에 0 초가 걸리는 것을 알 수가 있다.
이를 통해 cache가 잘 돌아가는 것을 확인할 수 있다.
📢 AOP패턴은 프록시 패턴을 이용하고있고 특정한 메소드, 특정한 기능의 앞 뒤로 내가 원하는 기능,
앞뒤로 넘어가는 아규먼트에 대해 조작도 할 수 있으며, 흩어져있는 공통된 기능을 한꺼번에 묶어 줄 수도 있다.
📢 HTTP클라이언트와 통신을 한다고하면, HTTP클라이언트의 코드가 흩어져있거나,
REST클라이언트 서비스라던지가 뭉쳐있다고하면 거기에 있는 메소드의 시간 측정한다던지 ,
데이터베이스에 INSERT한다던지, 꺼내와서 작업하는 TRANSACTION 쪽에다가도 시간관련 AOP를 넣어서
현재 시스템이 오래걸리는 위치가 어디인지,
어떤 메소드가 오래걸려서 해당 서비스에 로딩이 걸리는지 파악할 수 있다.
'이론 > 디자인패턴' 카테고리의 다른 글
[디자인 패턴] 옵저버 패턴 Observer Pattern (0) | 2021.06.06 |
---|---|
[디자인패턴] 데코레이터 패턴 Decorator Pattern (0) | 2021.06.06 |
[디자인패턴] 어뎁터 패턴 Adapter Pattern (0) | 2021.06.04 |
[디자인 패턴] 싱글톤 패턴 Singleton pattern (0) | 2021.06.04 |
[디자인패턴] Design Pattern 의 효용과 종류 (0) | 2021.06.04 |