728x90
AOP(Aspect Oriented Programming)
- 관점 지향 프로그래밍
- 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고, 그 관점을 기준으로 각각 모듈화한 것
- 핵심적인 관점 : 적용하고자 하는 핵심 비즈니스 로직
- 부가적인 관점 : 핵심 로직을 실행하기 위한 데이터베이스 연결, 로깅, 파일 입출력 등
- 계속 반복해서 쓰는 코드인 흩어진 관심사를 Aspect로 모듈화하며, 핵심적인 비즈니스 로직에서 분리하여 재사용하는 것이 AOP의 취지
- 횡단 관심사의 분리를 허용함으로 모듈성을 증가시키는 것이 목적인 프로그래밍의 패러다임
AOP 특징
- 프록시 패턴 기반의 AOP 구현체
- 프록시 패턴을 쓰는 이유는 접근 제어 및 부가기능을 추가하기 위해
- 왜 프록시 패턴인지? 기존 코드의 변경 없이 접근 제어 또는 부가 기능 추가를 위해서
- 스프링 빈에만 AOP를 적용 가능
- 모든 AOP 기능을 제공하는 것이 아닌 스프링 IoC와 연동하여 엔터프라이즈 애플리케이션에서 가장 흔한 문제(중복코드, 프록시 클래스 작성의 번거로움, 객체들 간 관계 복잡도 증가 등)에 대한 해결책을 지원하는 것이 목적
@AOP
스프링 @AOP를 사용하기 위해선 다음과 같은 의존성을 추가해야한다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
# 참고 사이트
728x90
'IT > Spring' 카테고리의 다른 글
[Spring] 정적 컨텐츠 (0) | 2022.06.18 |
---|---|
[Spring] Bean (0) | 2022.06.18 |
[Spring] 빌드하는 법 (0) | 2022.06.18 |
[Spring] View 환경설정 - Welcome page (4) | 2022.06.17 |
Spring[2] - 스프링과 메이븐 (0) | 2022.06.17 |