개발공부/Spring
[spring] AOP(Aspect Oriented Programming)이란?
환타몬
2022. 1. 26. 10:02
AOP?
주 업무 로직을 관점에 따라서 프로그래밍을 하는 것에 대한 방법론
사용자 관점 ( 주 업무 로직 )
개발자 관점
운영자 관점
Primary(Core) Concern 과 Cross-cutting Concern
로그처리
보안처리
트랜잭션처리
위 셋은 주 업무(Primary Concern)는 아니지만 사용자의 요구를 수반하려면 필요한 것들.
이런 업무들은 실질적인 업무를 담당하는 코드의 위, 아래를 담당함.
Cross-cutting Concern이라고 하는데, 관점이 다른 로직이다.
(프로그래밍은 위에서 아래로 진행하는데, 가로로 cutting했다 하여 Cross-cutting Concern 이라 함)
주 업무 로직에 대해서 뺐다 꼽았다 하는 것에 대해 자유로울 수 있어야 함.
해당 업무를 기존 방식은 소스를 갖고 있는 사람만 할 수 있었음. 배포문제 등도 있었고, 그래서 이에 대한 방안으로 나온 방법론이 AOP이다.
관점에 해당되는 코드를 꽂아놓은 것이 아니라 꽂아놓은 것처럼 실행되는 방법론.