본문 바로가기

수업 & 공부

프록시 패턴 (Proxy Pattern) @Transactional

프록시 패턴이란? (Proxy - 대변자)

객체를 감싸고있는 객체.

누군가를 대신하여 그 역할을 수행하는 존재이다. 누군가에게 어떠한 일을 대신 시켜서 처리하는 것

어떠한 객체를 사용할대 직접 참조하는 것이 아니라, 프록시 객체가 원래 객체를 감싸서 client의 요청을 처리하게 한다.

(인터페이스 역할)

 

프록시 패턴 사용이유

  • 접근 권한을 부여할 수 있다 
  • 부가 기능을 추가할 수 있다.

어떤 객체를 사용할 때 직접적으로 참조하지 않고 해당 객체를 대항하는 객체를 통해 접근하면

참조하는 객체가 메모리에 존재하지 않아도 기본적인 정보를 참조하거나 설정 할 수 있다.

 

프록시 패턴의 장점과 단점

장점

  • 전처리와 후처리 사용에 용의하다
  • 사이즈가 큰 객체가 로딩되기 전에도 프록시를 통해 참조 할 수 있다

단점

  • 객체를 생성할대 한 단계를 거치게 되므로 성능 저하가 될 수 있다
  • 위와 같은 이유로 가독성이 떨어진다

 

 

@Transactional 

@Transactional은 Spring AOP을 사용하여 구현되고 Proxy 방식이 사용된다

해당 어노테이션이 붙은 메소드가 실행되기 전 begin이 호출되고,

메소드가 종료되면 commit을 호출한다.

 

 


 

[디자인패턴] 프록시패턴(Proxy Pattern)

프록시(Proxy)를 번역하면 대리자, 대변인의 의미를 갖고 있다. 대리자, 대변인은 누군가를 대신해서 그 역할을 수행하는 존재이다. 이는 프로그램에도 똑같이 적용된다. 즉, 프록시에게 어떤 일

velog.io

 

'수업 & 공부' 카테고리의 다른 글

깃 브랜치 전략 (Git-flow , GitHub-flow)  (0) 2022.11.08
Filter, Interceptor, AOP  (0) 2022.11.04
AOP (Aspect Oriented Programming)  (0) 2022.11.03
docker - zookeeper - KAFKA 참고 (KAFKA CLI)  (0) 2022.10.12
KAFKA  (0) 2022.10.07