AOP란?
AOP(Aspect Oriented Programming)란?
AOP
는 관점지향 프로제그래밍인데, 로직의 어떠한 관점을 각각 나누어 모듈화하는 프로그래밍 방식이다.
프로그래밍을 할 때, 반복이 되는 코드들을 볼 수 있는데, Crosscutting Concerns라고 부른다. 즉, AOP
는 이러한 반복되는 코드를 관점(Aspect)별로 비즈니스 로직에서 분리해 재사용할 수 있도록 만드는 것이다.
객체지향 프로그래밍(OOP)에서 부가기능을 쉽게 모듈화 할 수 있다.
AOP 용어
- 타겟(Target)
-핵심기능을 담고 있는 모듈. 타겟 기능을 부여할 대상.
- 어드바이스(Advice)
-타겟에 제공할 부가기능 담고 있는 모듈
- 조인포인트(Join Point)
-어드바이스가 적용될 수 있는 위치.
-타겟의 인터페이스, 모든 메서드(생성자, getter 등)는 조인 포인트가 된다.
-스프링에서는 메소드만 해당한다. - 포인트 컷(Point cut)
-어드바이스를 적용할 타겟의 메서드를 선별하는 정규표현식.
-쉽게 말해 조인포인트의 부분으로 실제 어드바이스가 적용된 부분임. - 위빙(Weaving) -포인트컷에 의해 결정된 타겟의 조인포인트에 어드바이스를 삽입하는 과정임.
-어드바이스를 핵심기능에 적용하는 행위.
Spring에서의 AOP
Spring에서는 proxy 기반 AOP를 지원한다. proxy가 호출을 가로채서 어드바이스의 부가기능을 실행하거나(전처리 어드바이스), 타겟의 핵심기능 수행 후, 부가기능을 수행할 수도 있다.(후처리 어드바이스)
Spring에서는 Bean 조인포인트
를 지원한다.
참고 : https://shlee0882.tistory.com/206
댓글남기기