우아한 테크톡
[10분 테코톡] 🌕제이의 Spring AOP
dauneee
2022. 4. 5. 09:06
인프라 로직이란 ? |
- 애플리케이션의 전 영역에서 나타날 수 있다. - 중복 코드를 만들어낼 가능성 때문에 유지보수가 힘들어진다. - 비즈니스 로직과 함께 있으면 비즈니스 로직을 이해하기 어려워진다. |
-관점 지향 프로그래밍은 횡단괌심에 따라 프로그래밍 하는 것을 의미하고, 애플리케이션을 객체 지향적으로 코드를 구성할 수 있도록 보완해준다.
용어 | 기능 |
Target | 어떠한 대상에 부가 기능을 부여할 것인가 |
Advice | 어떠한 기능을 부가적으로 구현할 것인가! - Before, 메서드가 실행되기 전 - AfterReturning,메서드가 실행된 후 값을 리턴할 때 - AfterThrowing, 메서드가 실행되는 과정에서 예외가 발생하였을 때 - After, 메서드가 끝냈을 때 - Around, 메서드가 실행되기 전후 |
Join Point | 어디에 ( 메서드, 필드, 객체, 생성자 등 ) 적용할 것인가? |
Point Cut | 실제 Advice가 적용될 지점, Spring AOP에서는 Advice가 적용될 메서드를 선정 |
AOP의 구현 방법 |
-컴파일 - 클래스 로드시 - 프록시 패턴 |
Spring AOP와 AspectJ의 차이점 |
||
Spring AOP |
AspectJ | |
목표 | 간단한 AOP 기능 제공 |
완벽한 AOP 기능 제공 |
Join point | 메서드 레벨만 지원 |
생성자, 필드, 메서드 등 다양하게 지원 |
Weaving | 런타임 시에만 가능 | 런타임은 제공하지 않고, Compile-time, post-compile, load-time에서 제공 |
대상 | Spring Container가 관리하는 Bean에만 가능 | 모든 Java Object에 가능 |
< 영상 >