# 1. AOP란?
(1) AOP(Aspect-Oriented Programming); 관점 지향 프로그래밍
- AOP란? 횡단 관심사(cross-cutting concern)의 분리를 허용함으로써 모듈성을 증가시키는 것이 목적인 프로그래밍 패러다임이다.
- 관점 지향 프로그래밍을 이용해서 주 기능과 보조기능을 분리해서 메소드에 적용.
- AOP를 적용해야하는 이유
- 주기능을 위해서 보조 기능(로깅, 보안, 트랜재션) 들을 일일히 구현해야 한다.
- 규모가 있는 웹 애플리케이션일 경우 클래스의 메소드마다 이런 작업을 일일히 수작업으로 하기에서는 시간이 많이 걸리고 소스 코드도 복잡해진다. 즉, 유지보수의 어려움이 있다.
# 2. 스프링에서 AOP 기능 사용하기
(1) AOP 관련 용어
용어 | 설명 |
aspect | 구현하고자 하는 보조 기능을 의미함 |
advice | aspect의 실제 구현체(클래스)를 의미, 메소드 호출을 기준으로 여러 지점에서 실행됨. |
joinpoint | advice를 적용하는 지점을 의미, 스프링은 method 결합점만 제공. |
pointcut | advice가 적용되는 대상을 지정, 패키지 이름/ 클래스 이름/ 메소드 이름을 정규식으로 지정하여 사용 |
target | advice가 적용되는 클래스 의미 |
weaving | advice를 주기능에 적용하는 것을 의미 |
(2) 스프링 프레임워크에서 AOP 기능을 구현하는 방법
- 스프링 프레임워크에서 제공하는 API이용
- @Aspect 애노테이션 이용
References
- 자바 웹을 다루는 기술
- 관점 지향 프로그래밍, link
'Web > Spring' 카테고리의 다른 글
[ Spring ] ⑥ 스프링 애너테이션 기능 (0) | 2019.08.12 |
---|---|
[ Spring ] ⑤ 스프링 JDBC 기능 (0) | 2019.08.02 |
[ Spring ] ④ 스프링 MVC 기능 (0) | 2019.08.01 |
[ Spring ] ② DI와 IoC (0) | 2019.08.01 |
[ Spring ] ① Spring Framework 시작하기 (0) | 2019.08.01 |