IT/Spring

[Spring] AOP

어린이개발자 2025. 1. 6. 19:01

Spring 이 제공하는 중요한 기능 중 하나인 AOP(Aspect-Oriented Programming) 에 대해 정리하고자 한다.

AOP 는 애플리케이션의 핵심 비즈니스 로직과 이를 둘러싼 공통 기능(로깅, 보안, 트랜잭션 관리 등)을 분리하여 모듈화하는데 집중한다.

 

AOP 관련 핵심 개념에는 다음과 같은 항목들이 있다.

1. Aspect (관점)

- 공통 기능(횡단 관심사)을 모듈화한 것

2. Join Point (결합 지점)

- Aspect 를 적용할 수 있는 지점

  > Spring AOP 에서는 메서드 실행 지점만 Join Point 로 지원

3. Advice (조언)

- Join Point 에서 수행할 구체적인 작업 정의

4. Pointcut (포인트컷)

- Advice 가 적용될 Join Point 를 필터링하는 표현식

  > 메서드 이름 패턴이나 어노테이션 기준으로 정의

5. Weaving (위빙)

- Aspect 와 Target Object 를 결합하여 Proxy 객체 생성

  > Spring AOP 는 런타임 위빙 지원

6. Target Object

- Advice 가 적용될 실제 객체

 

AOP 를 사용시 공통 로직의 재사용성이 증가한다는 장점을 가지지만, Proxy 기반의 동작으로 약간의 성능이 저하되며 코드 흐름이 복잡해진다는 단점을 가진다.

'IT > Spring' 카테고리의 다른 글

[Spring] JDK Proxy vs. CGLIB  (0) 2025.01.05
[Spring] Reflection  (1) 2025.01.03
[Spring] Spring Batch 도입기  (1) 2025.01.02
[Spring] WebFlux 테스트 코드 작성  (0) 2024.11.27
[Spring] Spring Framework vs. Spring Boot  (2) 2024.11.14