
[Spring] Spring AOP의 동작원리, JDK Dynamic Proxy와 CGLIB

·
Backend/Spring
오늘은 Spring AOP에 대해서 공부해보겠습니다.1. 관점 지향 프로그래밍(AOP)1) 등장 배경, 횡단 관심사객체지향 프로그래밍(OOP)는 프로그램을 객체(Object)라는 기본단위로 나누고 이들의 상호작용을 바탕으로 프로그래밍 하는 방법입니다. 하지만 객체지향 방식만으로 프로그래밍을 하다보면 문제 상황이 발생합니다. 예를들어, 각 서비스 로직이 걸리는 시간을 로그로 출력한다고 가정해봅시다.// 서비스 마다 걸리는 시간을 로그로 표시한다고 가정try { ... business ...} finally { log.info("time = {}", watch.stop());} 수많은 서비스로직에 하나하나 이와같은 로그를 남긴다면 코드 양도 어마어마해질거고 반복된 작업을 계속해야 할 것입니다.로깅..