Knowledge

[Knowledge] AOP(Aspect Oriented Programming) 관점지향프로그램 란?

Jeong Jeon
반응형

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

대상 객체의 메서드 실행 전 / 후, 예외 발생 시점에 공통 기능을 실행합니다. 

 

반응형