스프링/스프링 프레임워크
AOP(Aspect Oriented Programming)
coffee.
2023. 12. 1. 13:58
AOP란?
AOP는 관점지향 프로그래밍 이라고도 하며 핵심 로직(종단 관심사)과 부가적인 부분(횡단 관심사)로 나누어 개발 하는 방식입니다.만약 AOP를 사용하지 않는다면 많은 부가적인 코드들이 비지니스 로직마다 중복해서 구현되어 코드분석 과 유지보수를 어렵게 만듭니다. AOP를 사용하여 두 로직을 분리해 낸다면 응집도 높은 코드를 유지 할 수 있습니다.
AOP용어 정리
조인 포인트
-클라이언트가 호출하는 모든 비지니스 메소드
-조인 포인트를 '포인트컷 후보'라고도 한다.
포인트 컷
-포인트 컷은 필터링된 조인포인트 이다.
-수많은 비지니스 메소드 중 우리가 원하는 특정 메소드만을 추출 한것
어드바이스
-횡단 관심사에 해당하는 공통 기능의 코드
-'before','after','after-returning','after-throwing','around'의 다섯 가지로 지정할 수 있다.
위빙
-포인트 컷으로 지정한 관심 메소드가 호출될 때 어드바이스에 해당하는 횡단 관심 메소드가 삽입되는 과정
애스팩트
-애스팩트는 포인트컷 과 어드바이스의 결합