프록시는 기존 인터페이스나 클래스를 구현화 / 상속한 메소드나 클래스에
필터를 추가하거나 기능을 추가한다.
@Override 와 같은 방법으로.
프록시는 기존 인터페이스와 클래스와 겉모양은 똑같지만 (call 할 수 있는 메소드명이 동일)
안에 로직은 다르다. 분명 프록시를 사용한 목적에 따라 무언가가 더 추가된다.
프록시의 주요 기능은 크게 두가지가 있다.
- 접근 제어
- 권한에 따른 접근 차단
- 캐싱
- 지연 로딩
- 부가 기능 추가
- 원래 서버가 제공하는 기능에 더해서 부가 기능을 수행한다.
- 예) 요청 값이나, 응답 값을 중간에 변형
- 예) 실행 시간을 측정해 추가 로그를 남김
접근 제어와 부가 기능 추가이다.
디자인 패턴 중 프록시를 사용하는 방법은 두가지가 있다.
- 프록시 패턴: 접근 제어가 목적
- 데코레이터 패턴: 새로운 기능 추가가 목적
GOF의 프록시 패턴은 캐싱에 중점인 패턴인 것 같다.
기존에 구현된 코드를 수정하지 않고 같은 인터페이스를 구현하는 프록시 객체로 바꿔치기해
직접 호출을 간접 호출로 변경하는 것만 해주면 된다.
'Computer Science > Design Pattern' 카테고리의 다른 글
[디자인 패턴] 데코레이터 패턴 (feat. Spring) (0) | 2024.01.04 |
---|---|
[디자인 패턴] 전략 패턴 (feat. Spring) (0) | 2023.12.22 |
[디자인 패턴] 템플릿 메서드 패턴 (feat. Spring) (0) | 2023.12.14 |
이터레이터 패턴(Iterator Pattern) (0) | 2022.07.05 |
팩토리 패턴 (0) | 2022.07.05 |