Spring 핵심개념! AOP에 대해 배워보자
https://engkimbs.tistory.com/746
[Spring] 스프링 AOP (Spring AOP) 총정리 : 개념, 프록시 기반 AOP, @AOP
| 스프링 AOP ( Aspect Oriented Programming ) AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 관점 지향은 쉽게 말해 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으..
engkimbs.tistory.com
출처: https://engkimbs.tistory.com/746 [새로비:티스토리]
해당 블로그를 참조하여 글을 작성하였습니다.
# AOP(Aspect Oriented Programming) 개념
아기를 키우는 부모들의 육아 방식이나 교육 방식은 제각각 다를 수 있습니다. 어떤 부모들은 아기를 재우기 위해 아기띠를 이용해서 재우지만 또 어떤 부모는 처음부터 침대에 눕혀놓고 재우기도 합니다. 그리고 어떤 부모들은 아기의 언어 발달을 위해서 책을 읽어주는 시간을 많이 가지는 반면에 또 어떤 부모들은 책보다는 동요를 더 많이 들려주는 방식으로 아기의 언어 발달을 도우려 합니다.
그런데 부모들마다 아기를 키우는 방식이 다를 수 있지만 공통되는 부분도 있습니다. 그것은 바로 아기의 건강입니다.
어떤식으로 아기를 키우든지 아기를 키우는 방식과 별개로 아기가 아프지 않고 잘 자라주었으면 하는 바램은 대부분 부모의 공통된 관심사입니다.
AOP에서의 Aspect는 부모들이 가지고 있는 아기의 건강 같은 공통 관심사와 마찬가지로 애플리케이션에 필요한 기능 중에서 공통적으로 적용되는 공통 기능에 대한 관심과 관련이 있습니다.
AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍으로 불리웁니다. 관점 지향 프로그래밍은 쉽게 말해 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하겠다는 것을 의미합니다.
AOP에서 각 관점을 기준으로 로직을 모듈화한다는 것은 코드들을 부분적으로 나누어서 모듈화하겠다는 의미다. 이때, 소스 코드상에서 다른 부분에 계속 반복해서 쓰는 코드들을 발견할 수 있는 데 이것을 흩어진 관심사 (Crosscutting Concerns)라 부릅니다.