AOP 용어 정리

Jiwontwopunch·2022년 3월 11일
0

독학

목록 보기
40/102
post-thumbnail

조인포인트(Joinpoint)

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

포인트컷(Pointcut)

필터링된 조인포인트

수많은 비즈니스 메소드 중에서 원하는 특정 메소드에서만 횡단 관심에 해당하는 공통 기능을 수행시키기 위해서 포인트컷이 필요

<aop:pointcut>엘리먼트로 선언, id 속성으로 포인트컷을 식별하기 위해 유일한 문자열을 선언하고 이 아이디가 나중에 포인트컷을 참조할 때 사용된다

중요한 것은 expression 속성인데, 이 값을 어떻게 설정하느냐에 따라 필터링되는 메소드가 달라진다

어드바이스(Advice)

횡단 관심에 해당하는 공통 기능의 코드, 독립된 클래스의 메소드로 작성

어드바이스로 구현된 메소드가 언제 동작할지 스프링 설정 파일을 통해서 지정가능

예를 들어, 트랜잭션 관리 기능의 어드바이스 메소드가 있다고 가정 시, 이 어드바이스가 비즈니스 로직이 수행되기 전에 동작하는 것은 아무런 의미가 없다. 당연히 비즈니스 로직 수행 후에 트랜잭션을 커밋commit 또는 롤백rollback 처리하면 된다.

스프링에서는 어드바이스 동작 시점을 'before', 'after', 'after-returning', 'after-throwing', 'around'등 다섯 가지로 지정할 수 있다

위빙(Weaving)

포인트컷으로 지정한 핵심 관심 메소드가 호출될 때, 어드바이스에 해당하는 횡단 관심 메소드가 삽입되는 과정을 의미하고 이 위빙을 통해서 비즈니스 메소드를 수정하지 않고도 횡단 관심에 해당하는 기능을 추가하거나 변경할 수 있다. 스프링에서는 런타임 위방 방식만 지원

애스팩트(Aspect) 또는 어드바이저(Advisor)

애스팩트는 포인트컷과 어드바이스의 결합으로서, 어떤 포인트컷 메소드에 대해서 어떤 어드바이스 메소드를 실행할지 결정한다. 이 애스팩트 설정에 따라 AOP의 동작 방식이 결정되므로 AOP 용어 중 가장 중요한 개념이라 할 수 있다.

사용자는 시스템을 사용하면서 여러 조인포인트를 호출하게 된다
이때 특정 포인트컷으로 지정한 메소드가 호출 되는 순간, 어드바이스 객체의 어드바이스 메소드가 실행된다. 포인트컷으로 지정한 메소드가 호출될 때, 어드바이스 메소드를 삽입하도록 하는 설정을 애스팩트라고 한다. 이 애스팩트 설정에 따라 위빙이 처리된다.

0개의 댓글