반응형
AOP(Aspect-Oriented Programming) : 관점지향 프로그래밍
- 공통화 할 수 있는 부분들을 Aspect라는 하나의 단위로 묶어 객체가 본질적으로 해야 할 일만 기술 할수 있도록 한다.
AOP의 대척점
기존의 객체 지향 프로그래밍(OOP: Oriented Programming)의 구현된 모듈이 핵심 관점의 구현한 모듈과 긴밀히 결합되어있어 모듈화 및 유지보수가 쉽지않고 실로 모듈화가 잘 된 어플리케이션 클래스를 보더라도 핵심기능을 위한 코드보다 다양한 부가적인 기능과 처리를 위한 부분의 양이 더 많아져 코드의 중복, 모듈화, 유지보수, 유연성 저하 등이 발생하였다.
이와 같이 횡단관심 부분에 AOP를 적용하여 단 하나의 로직만 변경되더라도 모든 소스에 적용된수 있도록 일원화및 모듈화 할수 있다.
Spring에서 AOP 구현을 위해 알아야할 5가지 용어
● Aspect - 여러객체에서공통으로적용되는공통관심사항(ex:트랜 잭션, 로깅, 보안)
● JoinPoint –Aspect가적용될수있는지점(ex:메소드, 필드)
● Pointcut – 공통관심사항이적용될Joinpoint
● Advice – 어느시점(ex: 메소드수행전/후, 예외발생후등)에 어떤공통관심기능(Aspect)을적용할지정의한것
● Weaving–어떤Advice를어떤Pointcut(핵심사항)에적용시킬것 인지에대한설정(Advisor)
반응형
'Web > Spring' 카테고리의 다른 글
[Spring Boot] Auto Configuration (0) | 2020.05.13 |
---|---|
[spring boot] ExceptionHandler (0) | 2020.05.13 |
[Spring] Device 체크 (0) | 2020.05.13 |
[Hibernate + Spring Data JPA + Querydsl] Querydsl (0) | 2020.04.28 |
[Spring boot] @ControllerAdvice 어노테이션 (0) | 2020.04.22 |