스프링 AOP(Spring AOP)

soso·2023년 10월 6일

스프링 AOP(Spring AOP)란?

스프링 프레임워크에서 제공하는 기능 중 하나로, 관점 지향 프로그래밍(Aspect Oriented Programming, AOP)을 구현하고 지원하는 기능이다.

⭐AOP(Aspect Oriented Programming)는 횡단 관심사를 분리하고 모듈화하는 프로그래밍 기법이다.

🌀 스프링 AOP의 주요 어노테이션

@Aspect
특정 클래스가 Aspect로서 역할을 수행함을 나타냄.
보통 이 어노테이션이 적용된 클래스는 하나 이상의 어드바이스(Advice)와 포인트컷(Pointcut)을 정의한다.

@Before
Advice를 정의할 때 사용.
메소드 실행 전에 Advice를 실행하도록 지정한다.

@AfterReturning
메소드가 성공적으로 실행된 후에 Advice를 실행하도록 지정한다.
이 어드바이스는 메소드가 값을 반환한 후에 실행된다.

@AfterThrowing
메소드 실행 중 예외가 발생한 경우에 Advice를 실행하도록 지정한다.
이 어드바이스는 메소드에서 예외가 발생한 후에 실행된다.

@After
메소드 실행 후에 무조건 Advice를 실행하도록 지정한다.
예외의 발생 여부에 관계 없이 실행된다.

@Around
메소드 실행 전후에 Advice를 실행할 수 있는 가장 강력한 유형의 Advice이다.
메소드의 실행을 제어할 수 있으며, 메소드 실행 전후에 추가적인 동작을 수행할 수 있다.

@Pointcut
포인트컷을 정의하는데 사용.
포인트컷은 Advice를 적용할 메소드나 클래스를 지정하는 데 사용된다.
포인트컷은 일반적으로 메소드의 이름, 반환 유형, 파라미터 유형 등을 지정하여 메소드를 선택한다.

💡스프링 AOP의 주요 특징

  • 간단한 구현
    스프링 AOP를 이용하면 XML 설정이나 자바 어노테이션을 통해 간단하게 AOP를 구현할 수 있다.
    개발자는 어드바이스(advice)를 작성하고 어느 지점에서 실행할 것인지를 포인트컷(pointcut)으로 정의하는 것만으로 AOP를 구현할 수 있다.

  • 프록시 기반 AOP
    스프링 AOP는 프록시(proxy)를 이용하여 AOP를 구현.
    이는 타깃 객체의 메소드 호출을 가로채어 Advice를 수행하는 방식이다.
    이러한 프록시 기반의 AOP 구현은 자연스럽게 스프링의 IoC (Inversion of Control) 컨테이너와 통합된다.

  • 다양한 어드바이스 유형
    스프링 AOP는 다양한 종류의 어드바이스를 지원한다.
    Before Advice, After Returning Advice, After Throwing Advice, After Advice, Around Advice 등 다양한 시점에서 Advice를 적용할 수 있습니다.

  • XML 및 어노테이션 기반 설정
    스프링 AOP는 XML 파일을 통한 설정 뿐만 아니라 자바 어노테이션을 이용한 설정 제공.
    이는 개발자가 보다 편리하고 가독성 높은 코드를 작성할 수 있게 한다.

  • 트랜잭션 관리 등 핵심 기능과 통합
    스프링 AOP는 핵심 기능인 트랜잭션 관리, 보안, 캐싱 등과 통합하여 사용할 수 있다.
    이는 스프링 프레임워크가 제공하는 기능들을 효과적으로 이용하여 애플리케이션을 개발할 수 있도록 도와준다.

profile
오늘의 기록

0개의 댓글