[Spring] 스프링 AOP 란?
들어가기전에 핵심 기능과 부가 기능 어플리케이션 로직은 크게 핵심기능과 부가기능으로 나눌 수 있다. 핵심기능 객체가 제공하는 고유의 기능 예) 회원 등록 로직, 주문 로직 등 부가기능 핵심기능을 보조하는 기능 예) 로그 로직, 트랜젝션 로직, 보안 로직 보통 부가기능은 여러 곳에서 공통으로 사용되는 경우가 많다. 예를들어 모든 호출에서 로그를 남기는 경우, 보안을 강화하는 로직을 이용하는 경우 등이 있다. 이러한 부가 기능은 횡단 관심사 (cross-cutting concerns) 라고 한다. 이렇게 부가기능을 여러 클래스에 적용하려면 어떻게 해야할까? 클래스의 수 대로 모든 클래스에 동일한 코드를 추가하면 될까? 이는 매우 번거롭고 바람직하지 못하다. 만약, 로그 로직에 변경이 발생한다면 그 클래스 수..