1. AOP란(Aspect Oriented Programming)?

AOP를 구현할 때 Spring이 도움을 주게 됨.

사용자의 요구사항을 수반하다보면 사용자가 요구했던 주 업무 로직이 아닌 개발자에게 필요한 코드들이 들어가게 됨.

즉, 개발자, 사용자, 관리자 각각의 관점에 따라 프로그램을 하게 되는 것을 의미함.

객체지향과 비교했을 때 더 큰 개념임.

 

예를 들어, 주 업무 로직 이외에 로그처리, 보안처리, 트랜잭션 처리 로직들도 필요한데 이런 로직은 주 업무 로직의 앞, 뒤로 끼게 된다. 

이때 주 업무 로직의 흐름은 위에서부터 아래로 실행되는데 이외의 로직들은 그 실행방향과 cross 방향으 잘라서 떼어내거나 붙일 수 있어야 하기 때문에 이를 Cross-cutting Concern이라고 부른다. 

 

위 사진처럼 관점이 다른 코드를 쉽게 뺐다 꽂았다 할 수 있는 방법론이 AOP다.

AOP는 관점에 해당되는 코드를 주 업무 로직에 꽂아놓지 않고, 마치 꽂아놓은 것처럼 진행될 수 있게 해놓은 것으로 주 업무는 주 업무대로 로직을 짜고, 관점에 해당하는 코드는 따로 짠다.

 

Cross-cutting Concern이 먼저 호출되고 그 다음 주 업무 로직이 실행, 그 다음 Cross-cutting Concern이 다시 호출되게 하는 것이 AOP 구현 방식이다. 이러한 AOP 구현을 Spring을 이용해 구현하게 된다.

 

+ Recent posts