개발정리

AOP(Aspect Oriented Programming) 본문

스프링/스프링 프레임워크

AOP(Aspect Oriented Programming)

coffee. 2023. 12. 1. 13:58

AOP란?

AOP는 관점지향 프로그래밍 이라고도 하며 핵심 로직(종단 관심사)부가적인 부분(횡단 관심사)로 나누어 개발 하는 방식입니다.만약 AOP를 사용하지 않는다면 많은 부가적인 코드들이 비지니스 로직마다 중복해서 구현되어 코드분석 과 유지보수를 어렵게 만듭니다. AOP를 사용하여 두 로직을 분리해 낸다면 응집도 높은 코드를 유지 할 수 있습니다.

 

AOP용어 정리

조인 포인트

-클라이언트가 호출하는 모든 비지니스 메소드

-조인 포인트를 '포인트컷 후보'라고도 한다.

 

포인트 컷

-포인트 컷은 필터링된 조인포인트 이다.

-수많은 비지니스 메소드 중 우리가 원하는 특정 메소드만을 추출 한것

 

어드바이스

-횡단 관심사에 해당하는 공통 기능의 코드

-'before','after','after-returning','after-throwing','around'의 다섯 가지로 지정할 수 있다.

 

위빙

-포인트 컷으로 지정한 관심 메소드가 호출될 때 어드바이스에 해당하는 횡단 관심 메소드가 삽입되는 과정

 

애스팩트

-애스팩트는 포인트컷 과 어드바이스의 결합