728x90
반응형
SMALL

AOP 5

AOP (Part. 3) - 포인트컷

포인트컷 지시자에 대해서 자세히 알아보자. 에스팩트J는 포인트컷을 편리하게 표현하기 위한 특별한 표현식을 제공한다. 예를 들면 이렇다. @Pointcut("execution(* hello.aop.order..*(..))") 포인트컷 표현식은 'execution'과 같은 포인트컷 지시자(Pointcut Designator)로 시작한다. 줄여서 PCD라고도 한다. 포인트컷 지시자 종류 포인트컷 지시자의 종류는 다음과 같다. execution: 메서드 실행 조인 포인트를 매칭한다. 스프링 AOP에서 가장 많이 사용한다. within: 특정 타입(클래스, 인터페이스) 내의 조인 포인트를 매칭한다. args: 인자가 주어진 타입의 인스턴스인 조인 포인트 this: 스프링 빈 객체(스프링 AOP 프록시)를 대상으로..

Spring Advanced 2024.01.02

AOP (Part.2)

이번 포스팅에서는 저번 포스팅인 https://cwchoiit.tistory.com/85 이 Part.1 에 이어 스프링 AOP를 직접 만들어보자. AOP(Aspect Oriented Programming) 이제 드디어 AOP에 대해 진지하게 알아보는 시간을 가져보자. 우선 AOP란 번역 하면 관점 지향 프로그래밍이다. 여기서 관점이란 무엇일까? 관점은 애플리케이션의 핵심적인 관점과 부가적인 관 cwchoiit.tistory.com 라이브러리 추가 우선 스프링 AOP를 사용하려면 다음과 같은 라이브러리가 필요하다. build.gradle implementation 'org.springframework.boot:spring-boot-starter-aop' 이 라이브러리를 추가한 후에 다운된 외부 라이브러리..

Spring Advanced 2024.01.02

AOP(Aspect Oriented Programming)

이제 드디어 AOP에 대해 진지하게 알아보는 시간을 가져보자. 우선 AOP란 번역 하면 관점 지향 프로그래밍이다. 여기서 관점이란 무엇일까? 관점은 애플리케이션의 핵심적인 관점과 부가적인 관점으로 분류할 수 있다. 애플리케이션의 핵심적인 관점이라고 하면 비즈니스 로직이다. 그리고 부가적인 관점은 애플리케이션의 비즈니스 로직을 수행하면서 있으면 도움이 되는 로직이다. 예를 들면 비즈니스 로직을 처리하는 시간에 대한 로그 출력이나, 데이터베이스와의 트랜잭션 기능. 이러한 부가 기능은 단독으로 사용되지 않고 핵심 기능과 함께 사용된다. 즉, 이름 그대로 핵심 기능을 보조하기 위해 존재한다고 볼 수 있다. 핵심 로직을 수행하기 직전 부가 로직이 수행되어야 하면 핵심 기능 로직과 부가 기능 로직이 하나의 객체 안..

Spring Advanced 2023.12.29

빈 후처리기(BeanPostProcessor)

스프링에서 '@Bean'이나 컴포넌트 스캔으로 스프링 빈을 등록하면 스프링은 대상 객체를 생성하고 스프링 컨테이너 내부의 빈 저장소에 등록한다. 그리고 스프링 컨테이너를 통해 등록한 스프링 빈을 조회해서 사용한다. 스프링이 빈 저장소에 등록할 목적으로 생성한 객체를 빈 저장소에 등록하기 직전에 조작하고 싶다면 빈 후처리기를 사용한다. BeanPostProcessor는 번역하면 빈 후처리기로, 이름 그대로 빈을 생성한 후에 무언가를 처리하는 용도로 사용한다. 빈 후처리기는 강력하다. 객체를 조작하는게 가능하고 완전히 다른 객체로 바꿔치기 하는 것도 가능하다. 빈 후처리기 과정을 자세히 살펴보자. 빈 후처리기 과정 스프링 빈 등록 과정 -> 빈 후처리기 1. 생성: 스프링 빈 대상이 되는 객체를 생성한다 (..

Spring Advanced 2023.12.27

Advisor, Advice, Pointcut

스프링에서 프록시를 만들고 AOP 관련 개념을 접하면 한번은 듣는 단어인 Advisor, Advice, Pointcut에 대해 정리하고자 한다. 우선 그 전에 다음 포스팅을 참고하면 좋을 것 같다. https://cwchoiit.tistory.com/80 스프링이 지원하는 프록시 https://cwchoiit.tistory.com/79 Proxy/Decorator Pattern 2 (동적 프록시) https://cwchoiit.tistory.com/78 Proxy/Decorator Pattern 이제 스프링에서 굉장히 자주 사용되는 프록시와 데코레이터 패턴을 정리해 보자. 이 프록시 cwchoiit.tistory.com 위 포스팅에서 스프링이 ProxyFactory를 제공해주고 이 프록시 팩토리로 동적..

Spring Advanced 2023.12.15
728x90
반응형
LIST