AOP (5) 썸네일형 리스트형 Spring 빈 후처리기(BeanPostProcessor)? 이번 글에서는 빈 후처리기(BeanPostProcessor)가 빈 생명주기 사이에서 어떤 역할을 수행하는지, 그리고 스프링 AOP의 핵심 기능인 자동 프록시 생성기가 어떻게 동작하는지를 정리해 보려 합니다. 빈 후처리기(BeanPostProcessor)?스프링이 빈 저장소에 등록할 목적으로 생성한 객체를 빈 저장소에 등록하기 직전에 조작하고 싶을 경우, 빈 후처리기를 사용하면 된다. 1. 일반적인 스프링 빈 등록 과정@Bean또는 컴포넌트 스캔으로 스프링빈을 등록하면, 스프링은 대상 객체를 생성하고 스프링 컨테이너 내부의 빈 저장소에 등록그리고 그 이후에 스프링 컨테이너를 통해 등록한 스프링 빈을 조회해서 사용하면 된다. 2. 빈 후처리기 과정과정 - 1일반적인 빈 등록 과정에서 스프링 빈 저장소에.. Spring AOP의 시작, ProxyFactory 이해하기 Spring AOP를 공부하다 보면 ProxyFactory라는 개념을 접하게 됩니다. 처음에는 다소 생소할 수 있지만, 프록시의 생성 과정을 직접 다뤄볼 수 있기 때문에 AOP의 내부 동작 원리를 이해하는 데 도움이 됩니다.실제로 요즘 Spring Boot 기반의 실무 개발에서는 @Aspect 기반의 선언적 AOP를 선호하고 사용하지만, 이면엔 ProxyFactory가 프록시 생성을 담당하는 도구로 활용되고 있습니다.따라서 이번 글에서는 ProxyFactory의 역할과 동작을 간단하게 정리해보려고 합니다. 프록시 팩토리(Proxy Factory)란?ProxyFactory는 Spring AOP에서 프록시 객체를 생성하기 위한 핵심 클래스입니다.AOP(관점 지향 프로그래밍)에서는 핵심 기능 외에 부가 기능(.. JDK 동적 프록시, CGLIB Spring 프레임워크를 사용하면서 @Transactional, @Async 과 같은 기능들을 자주 접하게 됩니다. 이런 기능들은 개발자가 직접 작성한 코드 바깥에서 실행되는 부가 기능을 자동으로 적용해주는 역할을 하고 개발자가 개발에만 집중 할 수 있게 도와준다.그런데 이게 어떻게 가능한 걸까?그 핵심에는 프록시(Proxy) 라는 기술이 있다. Spring은 개발자가 작성한 원본 객체를 직접 사용하는 것이 아니라, 그 객체를 감싸는 프록시 객체를 만들어서 그 안에 부가기능을 끼워 넣는 방식으로 동작합니다.이때 Spring이 사용하는 두 가지 대표적인 프록시 기술이 바로 JDK 동적프록시, CGLIB(Code Generation Library) 입니다.오늘은 이 2가지 기술에 대해서 간단하게 정리해보겠습.. 객체에 기능을 동적으로 추가하는 방법: 데코레이터 패턴 프록시 패턴과 구조적으로 유사한 디자인 패턴들이 존재하며, 이들은 의도에 따라 서로 구분되기도 합니다. 예를 들어, 프록시 패턴은 접근 제어나 로깅과 같은 제어 책임을 추가하는 데 목적이 있는 반면, 데코레이터 패턴은 기능을 유연하게 확장하는 데 그 목적이 있습니다. 이번 글에서는 이러한 의도 차이를 바탕으로 데코레이터 패턴(Decorator Pattern)에 대해 정리해 보겠습니다. 데코레이터 패턴 ( Decorator Pattern )객체 지향 프로그래밍 에서 데코레이터 패턴은 같은 클래스의 다른 인스턴스의 동작에 영향을 주지 않고 개별 객체에 동적으로 동작을 추가할 수 있게 해주는 디자인 패턴입니다.이 패턴은 기능을 고유한 관심 영역을 가진 클래스 간에 나눌 수 있으므로 단일 책임 원칙을 준수.. Spring AOP를 이해하기 전 : 프록시 패턴 Spring AOP의 동작 원리를 깊이 있게 이해하려고 공부하던 중, 빠지지 않고 등장하는 개념이 바로 프록시 였습니다. AOP는 내부적으로 프록시 객체를 생성해 핵심 기능 앞뒤에 부가적인 기능을 끼워넣는 방식으로 동작하는데, 이 구조를 명확히 이해하려면 Proxy 패턴에 대한 기본적인 이해가 필수라고 생각해 프록시 패턴에 대해 정리해 보려고 합니다. 프록시 패턴 ( Proxy Pattern )프록시?사전적으로 Proxy는 "대리, 대리인, 대용물"등의 뜻을 가지고 있습니다.프록시 패턴프록시 패턴은 영어단어 에서 유추할 수 있듯이 어떤 객체에 대한 접근을 제어하기 위해 대리 객체(Proxy)를 사용하는 구조를 말합니다. 즉 실체 객체를 직접 사용하지 않고 그 앞단에 프록시를 두어 접근을 제어하거나 기.. 이전 1 다음