Spring의 관점 지향 프로그래밍(Aspect-Oriented Programming)
2024. 4. 12. 02:44ㆍSpring Boot/Spring Core
반응형
들어가며
Spring의 관점 지향 프로그래밍(Aspect-Oriented Programming. AOP)은 ‘aspects’라고 명명된 개발자의 관심사에 따라 클래스를 분류하여 개발하는 프로그래밍 기법이다.
예를 들면, ‘logging’ 기능과 ‘transaction’ 기능의 설정을 따로 관리하는 것을 들 수 있다. 이 ‘aspects’에 대한 동작을 ‘advice’라 부르고, 각 ‘advice’의 ‘join point’에서 ‘pointcut’개발하는 방식이다.
AOP는 개발자가 어플리케이션의 비즈니스 로직과 다른 관심사들을 분리할 수 있게 해주고, 그들을 모듈화하여 코드 재사용성과 가독성을 높인다.
Spring AOP Terminology
Aspect
API가 갖고 있는 하나의 ‘관심사’
예를 들어 ‘Logging Module’은 ‘Logging’이 관심사이며, 어플리케이션 내 여러 부분에서 이 관심사를 공유할 수 있다.
Join Point
어플리케이션 코드가 Aspect Module을 적용하는 부분
Advice
어플리케이션 코드 실행 이전 또는 이후에 Aspect Module이 작동되는 메서드
Pointcut
Advice가 적용될 Join Point의 집합
Weaving
컴파일, 로딩 또는 런타임에 여러 개의 Aspect를 연결하는 과정
Advice의 종류
- before : 메서드가 실행되기 전 advice 실행
- after : 메서드가 실행된 후 advice 실행
- after-returning : 메서드가 성공적으로 실행된 경우에만 advice 실행
- after-throwing : 메서드에서 예외가 발생한 경우에만 advice 실행
- around : 메서그 실행 전, 후로 advice 실행
Custom Aspect의 종류
- XML Schema Based
- @AspectJ Based
Resources
반응형
'Spring Boot > Spring Core' 카테고리의 다른 글
Spring Annotation 사용해보기 (0) | 2024.04.14 |
---|---|
Spring MVC 사용해보기 (0) | 2024.04.12 |
Spring의 제어 역전(Inversion of Control) (0) | 2024.04.04 |
Spring의 의존성 주입(Dependency Injection) (1) | 2024.04.04 |
Spring Core Configuration 사용해보기 (0) | 2024.04.04 |