AOP용어 및 어노테이션 정리

하루·2025년 2월 18일
post-thumbnail

AOP란

- AOP는 객체 지향 프로그래밍(OOP)의 한계를 보완하기 위해 등장한 개념으로, 공통적인 기능(로깅, 트랜잭션, 보안 검사 등)을 핵심 비즈니스 로직과 분리하여 관리할 수 있도록 하는 프로그래밍 패러다임

@Aspect

  • 클래스에 AOP 기능이 있음을 선언
  • 해당 클래스가 Aspect (공통 기능을 포함하는 클래스) 역할을 함

@Pointcut

  • AOP가 적용될 대상을 정의하는 어노테이션
  • 특정 메서드나 패키지를 Pointcut 표현식으로 지정 가능

@Before

  • 메서드 실행 전에 실행되는 Advice
  • 공통 기능(로깅, 보안 검사 등)을 수행할 때 사용

@After

  • 메서드 실행 후에 실행되는 Advice
  • 성공/실패 여부와 관계없이 무조건 실행됨

@AfterReturning

  • 메서드가 정상적으로 실행된 후 실행되는 Advice
  • 반환값을 활용할 수 있음

@AfterThrowing

  • 메서드 실행 중 예외가 발생했을 때 실행되는 Advice

@Around

  • 메서드 실행 전/후 및 예외 발생 시 모두 실행되는 Advice
  • ProceedingJoinPoint를 사용하여 직접 메서드 실행을 조작할 수 있음

@EnableAspectJAutoProxy

  • Spring에서 AOP 기능을 활성화하는 설정
  • 보통 @Configuration과 함께 사용

어노테이션 설명

  • @Aspect AOP 클래스(Aspect)임을 선언
  • @Pointcut AOP가 적용될 대상을 지정
  • @Before 메서드 실행 전에 실행되는 Advice
  • @After 메서드 실행 후에 실행되는 Advice (예외 발생 여부와 관계없음)
  • @AfterReturning 메서드가 정상적으로 실행된 후 실행되는 Advice
  • @AfterThrowing 메서드 실행 중 예외 발생 시 실행되는 Advice
  • @Around 메서드 실행 전/후 및 예외 발생 시 모두 실행되는 Advice (가장 강력함)
  • @EnableAspectJAutoProxy Spring에서 AOP 기능을 활성화

용어 설명

  • Aspect 공통 기능(로깅, 트랜잭션 등)을 모듈화한 클래스
  • Advice 언제(전, 후, 예외 발생 시) 공통 기능을 실행할지 정의
  • JoinPoint Advice가 적용될 수 있는 실행 지점 (주로 메서드 실행)
  • Pointcut Advice가 실행될 메서드를 지정하는 표현식
  • Weaving Advice를 실제 코드에 적용하는 과정
  • Target Object AOP가 적용되는 실제 객체 (핵심 비즈니스 로직을 가진 클래스)
  • Proxy Target Object를 감싸고 Advice를 적용하는 객체
  • Introduction 기존 클래스에 새로운 기능(메서드, 필드 등)을 추가

0개의 댓글