디자인패턴 2

[디자인 패턴] 프록시 패턴(Proxy Pattern), 데코레이터 패턴(Decorator Pattern)

Proxy란? Client(요청자) 와 Server(제공자) 사이에 Proxy(대리인)을 의미한다. 이 Client와 Server는 굉장히 넓은 의미가 될 수 있는데, 여기서는 웹 브라우저 - 웹 서버의 개념이 아닌, 객체간의 호출자와 호출 당한 객체를 의미한다. Proxy 도입 장점 우선, 직접 호출을 하지 않고 대리자를 하나 세웠다는 것 만으로 많은 것을 할 수 있다. (이미 Spring에서 Proxy를 많이 사용한다.) 대상에게 접근을 제어하거나, 캐싱을 할 수 있다. 권한에 대한 접근 차단 캐싱 지연로딩 (client가 프록시를 가지고 놀다가 실제 요청이 들어오면 실 객체를 제공한다) 대상에게 추가적인 기능을 제공할 수 있다. 원래 서버가 제공하는 기능 + 알파 ex) 요청값이나 응답 값을 중간에..

개발언어/JAVA 2022.11.05

[디자인 패턴] 템플릿 메서드 패턴, 전략 패턴

템플릿 메서드 패턴 (Template Method Pattern) 핵심 비즈니스 로직을 제외하고, 동일한 구조를 가진 부가 기능들을 템플릿처럼 변환해서 핵심 로직만 변환해서 찍어내는 패턴이다. 변하는 것과 변하지 않는 것을 분리 핵심 기능은 변하고 로그남기기, 트랜잭션 기능 등은 반복되고 변하지 않는다. 이 둘을 분리해서 모듈화 해야 좋은 코드다. --- 구현 @Slf4j public abstract class AbstractTemplate { public void execute() { long startTime = System.currentTimeMillis(); //비즈니스 로직 실행 call();//상속 //비즈니스 로직 종료 long endTime = System.currentTimeMillis(..

개발언어/JAVA 2022.11.03
1