자바 스프링 핵심개념 (AOP)

2D3·2022년 8월 16일
0

부트캠프 일지

목록 보기
14/15
post-thumbnail
post-custom-banner

AOP

AOP가 필요한 이유?

Aspect는 여러 유형과 객체 간에 발생하는 문제 (ex - 트랜잭션)의 모듈화를 가능하게 함!


AOP 용어

애스팩트(Aspect)

어드바이스 + 포인트컷을 모듈화하여 애플리케이션에 포함되는 횡단 기능

조인 포인트(join point)

클래스 초기화, 객체 인스턴스화, 메소드 호출, 필드 접근, 예외 발생과 같은 애플리케이션 실행 흐름에서의 특정 포인트를 의미

어드바이스(Advice)

조인포인트에서 수행되는 코드

포인트컷(Pointcut)

조인 포인트 중에서 어드바이스가 적용될 위치를 선별하는 기능

위빙(Weaving)

포인트컷으로 결정한 타겟의 조인 포인트에 어드바이스를 적용하는 것

AOP 프록시(proxy)

AOP 기능을 구현하기 위해 만든 프록시 객체

타겟 (Target)

핵심 기능을 담고 있는 모듈로 타겟은 부가기능을 부여할 대상이 됨

어드바이저(Advisor)

하나의 어드바이스와 하나의 포인트 컷으로 구성


타입별 Advice

어드바이스(Advice)?

Aspect를 언제 핵심 코드에 적용할지를 정의

Advice 순서

어드바이스는 기본적으로 순서를 보장하지 않음

순서를 지정하고 싶으면
@Aspect 적용 단위로 org.springframework.core.annotation.@Order 애너테이션을 적용

Advice 종류

Before

조인 포인트 실행 이전에 실행

After returning

조인 포인트가 정상 완료 후 실행

After throwing

메서드가 예외를 던지는 경우에 실행

After (finally)

조인 포인트의 동작(정상 또는 예외)과는 상관없이 실행

Around

메서드 실행 전 & 후, 예외 발생 시점에 공통 기능을 실행


profile
return Success;
post-custom-banner

0개의 댓글