1. 핵심 기능과 부가 기능

핵심 기능 (Core Concern)

부가 기능 (Cross-cutting Concern)

예시

핵심 기능 부가 기능
상품등록, 상품목록, 상품구매 로깅, 트랜잭션, 자원해제

2. AOP 개요

AOP (Aspect-Oriented Programming)

핵심 개념

개념 설명
Aspect 부가 기능을 모듈화한 단위 (Advice + Pointcut)
JoinPoint Advice가 적용 가능한 모든 메서드 실행 지점
Pointcut Advice를 적용할 특정 JoinPoint
Advice 부가 기능 자체 (before, after 등)
Weaving Advice가 핵심 기능(JoinPoint)에 결합되는 과정

AOP 동작 원리

3. AOP 어노테이션

AOP 어노테이션을 통해 부가 기능을 특정 지점에서 실행

어노테이션 설명
@EnableAspectJAutoProxy Spring AOP를 활성화 (AspectJ 사용)
@Aspect 관심사(부가기능)를 정의하는 클래스 설정
@Pointcut Advice를 적용할 조인 포인트 지정
@Before 메서드 실행 전에 Advice 실행
@After 메서드 실행 후에 Advice 실행
@AfterReturning 메서드가 성공적으로 종료된 후 Advice 실행
@AfterThrowing 메서드 실행 중 예외 발생 시 Advice 실행
@Around 메서드 실행 전·후 Advice 실행 (직접 제어)