본문 바로가기
Backend FrameWork/Spring

[Spring Framework] AOP 개념

by IsBerry 2018. 12. 19.
반응형

AOP (Aspect Oriented Programming) 개념

 

 


 

AOP란? Aspect Oriented Programming

 : 문제를 바라보는 관점을 기준으로 프로그래밍하는 기법.

   핵심 관심사항, 공통 관심사항을 기준으로 프로그래밍을 함.


* 핵심 관심사항 : 핵심 비즈니스 로직

  공통 관심사항 : 로깅, 트랜잭션, 보안관리 등 어플리케이션 전반에 걸쳐 적용되는 공통 기능




기본개념

 : 공통 관심사항을 구현한 코드를 핵심 로직을 구현한 코드 안에 삽입

   AOP프로그래밍은 AOP라이브러리가 공통 기능을 알아서 알맞게 삽입해준다.

   


  


AOP용어


 용어

의미 

 JoinPoint

 Advice를 적용 가능한 지점.  EX) 메소드 호출, 필드 값 변경 등 

Pointcut

 실제로 Advice가 적용되는 Jointpoint를 나타냄. JoinPoint의 부분 집합.  

 Advice

 공통 관심기능을 핵심로직에 언제 적용할 지를 정의.

 Weaving

 Advice를 핵심로직코드에 적용(삽입)하는 것. 

 Aspect

 여러 객체에 공통으로 적용되는 기능. (공통 관심기능)




Weaving 방식

 1. 컴파일 시에 Weaving 

 2. 클래스 로딩 시에 Weaving

 3. 런타임 시에 Weaving




반응형