티스토리 뷰

Framework/Spring

[Spring] AOP

DUCKBAE's 2022. 6. 14. 23:23

AOP (Aspect Oriented Programmint) 관점 지향 프로그래밍

횡단 관심사(cross-cutting concern)의 분리를 허용함으로써 모듈성을 증가시키는 것이 목적인 프로그래밍 패러다임이다.

여러 모듈에서 공통적으로 사용되는 기능을 분리하여 관리 할 수 있다.

 

횡단 관심사(cross-cutting concern)

핵심 기능(Core Concern)을 도와주는 부가적인 기능이다.

횡단 관심사를 분리하는 목적은 다양한 모듈에서 공통적으로 사용하기 때문에 중복 코드가 발생하며, 유지보수의 어려움이 있기 때문이다.

 

핵심 관심사(Core Concern)

비즈니스 로직을 포함하는 핵심 기능이다.

 

 

핵심 관심사와 횡단 관심사

용어

Target

핵심 기능을 담고 있는 모듈로, 부가기능을 부여할 대상이 된다.

 

Advice

Target에 제공할 부가기능을 담고 있는 모듈이다.

JointPoint에 삽입되어 동작할 수 있는 코드이다.

실행시점('언제')과 동작('무엇')을 정의한다.

  • Before Advice : Join Point 전에 수행되는 Advice
  • After Advice : Join Point 실행 직후에 수행되는 Advice
  • Around Advice : Join Point 실행 전후로 수행되는 Advice
  • After Returning Advice : Join Point가 성공적으로 완료되었을 경우 수행되는 Advice
  • After Throwing Advice : Join Point가 예외를 던지면서 종료 되었을 때 수행되는 Advice

 

Join Point

Advice가 적용될 수 있는 위치를 말한다.

 

Pointcut

Advice를 적용할 Target의 메서드를 선별하는 정규표현식이다.

 

Weaving

Pointcut에 의해서 결정된 Target의 Join Point에 Advice를 삽입하는 과정이다.

 

Aspect

AOP의 기본 모듈로, 부가 기능을 정의한 Advice와 Advice를 어디에 적용할 지 결정하는 Pointcut의 조합으로 구성된다.

 

//TODO

AOP 동작 원리 및 실습 작성

 

참고

https://www.journaldev.com/2583/spring-aop-example-tutorial-aspect-advice-pointcut-joinpoint-annotations

 

Spring AOP Example Tutorial - Aspect, Advice, Pointcut, JoinPoint, Annotations, XML Configuration - JournalDev

Spring AOP Example Tutorial - Spring Aspect Example of @Aspect, Join Point @Pointcut, @Before, @After, @Around AspectJ annotations, AOP Proxy, Weaving.

www.journaldev.com

 

'Framework > Spring' 카테고리의 다른 글

[JPA] View Table  (0) 2022.07.28
[JPA] Composite Key  (0) 2022.07.22
[Spring] JUnit  (0) 2022.07.20
[Spring] EnvironmentPostProcessor  (0) 2022.07.13
[Spring] Spring Framework란  (0) 2022.06.12
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함