AOP란? Aspect-Oriented-Programming의 약자로 관점 지향 프로그래밍이란 뜻을 내포한다.
기본개념은 핵심 기능에 공통 기능을 삽입하는 방식이다. 예를 들어 log나, 사용자 확인 등등
-
관점 : 사용되는 cc(core concern주관심사)와 주관심사외 나머지ccc(cross cutting concern)을 분리하겠다
CC(Core Concern) |
CCC(Cross Cutting Concern) |
Application이 중심이 되는 것들 로직, Dao, Service, Controller등 없으면 안돌아가는 것들 |
log, tranjaction, 예외처리 등 |
IoC 이기 떄문에 가능 |
|
Spring bean을 통해서 미리 선언 및 작성을 해놔야 한다 |
용어 |
설명 |
Joinpoint |
Advice를 적용가능한 지점을 의미 / 메소드 호출, 필드값 변경 등 |
Pointcut |
Joinpoint의 부분 집합으로, Advice가 적용되는 Joinpoint를 나타냅니다. |
Advice |
Aspect를 언제 핵심 코드에 적용할 지를 정의합니다. |
Weaving |
Advice를 핵심 코드에 적용하는 것을 말합니다. |
Aspect |
여러 객체에 공통으로 적용되는 기능을 말합니다. (공통 기능) |
용어 |
설명 |
Before Advice |
대상 객체의 메서드 호출 전에 공통 기능을 실행합니다. |
After Returning Advice |
대상 객체의 메서드가 예외 없이 실행된 이후에 공통기능을 실행합니다. |
After Throwing Advice |
대상 객체의 메서드를 실행하는 도중 예외가 발생한 경우 공통기능을 실행합니다. |
After Advice |
대상 객체의 메서드 실행 후 공통 기능을 실행합니다. |
Around Advice |
대상 객체의 메서드 실행 전 / 후, 예외 발생 시점에 공통 기능을 실행합니다. |
'Knowledge' 카테고리의 다른 글
[Node.js] Node.js란? -1 (0) | 2021.01.06 |
---|---|
[Knowledge] Thread와 Process 차이점 (0) | 2021.01.04 |
[Knowledge] iBatis & myBatis 사용 개념-2 (0) | 2020.12.30 |
[Knowledge] iBatis & myBatis 사용 개념-1 (0) | 2020.12.30 |
[Knowledge] Eclipse Lombok(롬복) 사용하기 (0) | 2020.12.30 |