1. AOP란(Aspect Oriented Programming)?
AOP를 구현할 때 Spring이 도움을 주게 됨.
사용자의 요구사항을 수반하다보면 사용자가 요구했던 주 업무 로직이 아닌 개발자에게 필요한 코드들이 들어가게 됨.
즉, 개발자, 사용자, 관리자 각각의 관점에 따라 프로그램을 하게 되는 것을 의미함.
객체지향과 비교했을 때 더 큰 개념임.
예를 들어, 주 업무 로직 이외에 로그처리, 보안처리, 트랜잭션 처리 로직들도 필요한데 이런 로직은 주 업무 로직의 앞, 뒤로 끼게 된다.
이때 주 업무 로직의 흐름은 위에서부터 아래로 실행되는데 이외의 로직들은 그 실행방향과 cross 방향으 잘라서 떼어내거나 붙일 수 있어야 하기 때문에 이를 Cross-cutting Concern이라고 부른다.

위 사진처럼 관점이 다른 코드를 쉽게 뺐다 꽂았다 할 수 있는 방법론이 AOP다.
AOP는 관점에 해당되는 코드를 주 업무 로직에 꽂아놓지 않고, 마치 꽂아놓은 것처럼 진행될 수 있게 해놓은 것으로 주 업무는 주 업무대로 로직을 짜고, 관점에 해당하는 코드는 따로 짠다.
Cross-cutting Concern이 먼저 호출되고 그 다음 주 업무 로직이 실행, 그 다음 Cross-cutting Concern이 다시 호출되게 하는 것이 AOP 구현 방식이다. 이러한 AOP 구현을 Spring을 이용해 구현하게 된다.
'개발자 공부 > Spring' 카테고리의 다른 글
| AOP(3) - Before Advice / After Returning Advice / Throwing Advice (0) | 2023.04.10 |
|---|---|
| AOP(2) - AOP 구현 방식 이해하기 / Spring으로 AOP구현하기(Around Advice) (0) | 2023.04.10 |
| Spring(10) - XML Configuration -> Java Configuration (0) | 2023.03.28 |
| Spring (9) - Annotation을 이용한 객체 생성 / @Controller, @Repository, @Service (0) | 2023.03.28 |
| Spring (8) - Autowired의 위치와 Required 옵션 (0) | 2023.03.28 |