본문 바로가기

Web/Spring

Spring AOP(Aspect-Oriented Programming): 관점지향 프로그래밍

반응형

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