관점지향 프로그래밍이란?
AOP는 관심사의 분리를 위해 만들어진 개념이다 기능을 핵심 관심 사항과 공통 관심 사항으로 나누어서 각각 모듈화 하는것을 의미한다.
비즈니스 업무 로직 등 주 목적을 달성하기 위한 핵심 로직에 대한 관심사를 핵심 관심 사항이라고 하고, 전체 애플리케이션에 걸쳐서 공통적으로 사용 되는 기능들의 대한 관심사를 공통 관심 사항이라고 한다.
객체 지향 프로그래밍을 적용했지만 그렇더라도 분리하기 어려운 보안. 트랜잭션 같은 공통 기능 로직을 쉽게 분리할 수 있게 해준다.
관심사를 분리하려는 이유는?
깊게 들어가면 만들어진 다양한 이유가 있기는 하겠지만 공통되고 흩어져 있던 관심사들을 모듈화 해서 핵심 비즈니스 로직에서
분리해서 적재적소에 재사용하려는 개념에서 사용하고 있다.
프록시 패턴 기반의 AOP 구현체를 스프링은 사용하고 있고 프록시 객체를 사용하는 이유는 접근 제어와 부가기능들을 추가하기 위해서다.
참조 문서
https://engkimbs.tistory.com/746
[Spring] 스프링 AOP (Spring AOP) 총정리 : 개념, 프록시 기반 AOP, @AOP
| 스프링 AOP ( Aspect Oriented Programming ) AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 관점 지향은 쉽게 말해 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으..
engkimbs.tistory.com