개발공부/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이다.

 

관점에 해당되는 코드를 꽂아놓은 것이 아니라 꽂아놓은 것처럼 실행되는 방법론.