Aspect-Oriented Programming
어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하는 것.
AOP에서 각 관점을 기준으로 모듈화를 하겠다는 의미는 코드들을 부분적으로 나누어서 모듈화하겠다는 의미이다.
이때, 소스 코드상에서 다른 부분에서도 반복적으로 사용되는 코드들을 확인할 수 있는데 이것들을 흩어진 관심사라고 한다.
흩어진 관심사들을 관점(Aspect)으로 모듈화하고 핵심적인 비즈니스 로직에서 분리하여 재사용하겠다는 것이 AOP의 취지이다,
스프링에서는 @AOP
를 사용해서 AOP를 사용할 수 있다.