시작하며
기존의 템플릿 메서드 패턴, 템플릿 콜백 패턴은 기존 코드를 수정할 수 밖에 없다. 그래서 코드를 건드리지 않는 프록시 패턴을 도입해보고자 한다.
프록시
서버와 클라이언트 관계에서 실제 서버처럼 행동하는 대체자를 프록시라고 한다. 프록시를 도입하면 다음과 같은 이점을 얻을 수 있다.
1. 접근 제어
- 권한에 따른 접근 차단
- 캐싱
- 지연로딩
2. 부가 기능 추가
- 현재 서버가 제공하는 기능에 더해서 부가 기능을 수행한다
- 예시1) 요청 값이나 응답 값을 중간에 변형
- 예시2) 실행 시간을 측정해서 추가 로그를 남김
디자인 패턴
이 프록시 개념을 디자인 패턴에 활용한 것들이 있다. '프록시 패턴'과 '데코레이터 패턴' 이다. GOF 디자인 패턴에 따르면 이 둘의 의도(intent)가 다르다. 프록시 패턴은 '접근 제어' 가 목적이고, 데코레이터 패턴은 '새로운 기능 추가' 가 목적이다. 둘다 프록시를 사용하는 것이다.
스프링 사용 정보
- Spring MVC 에서는 `@RequestMapping` 어노테이션이 있으면 컨트롤러로 인식한다.
- 보통 `@RestController` 를 사용하는데 이 어노테이션은 @Component 가 있어서 컴포넌트 스캔에 감지되어 자동 빈으로 등록된다.
'공부노트 > 스프링' 카테고리의 다른 글
Spring AOP 적용 (0) | 2022.06.25 |
---|---|
스프링 AOP (0) | 2022.06.19 |
Strategy Pattern, Template Callback 패턴 (0) | 2022.04.24 |
Template Method 패턴 (0) | 2022.04.24 |
스프링 프레임워크 - 기초 (0) | 2022.04.10 |