본문 바로가기

spring AOP

(2)
Spring AOP의 동작 원리 (1) - JDK Dynamic Proxy 이전에 AOP 사용에 대해 정리한 글이 있는데, 생각해보니 정확한 원리에 대해서 알아보지 못한거 같아 정리하려고 한다. Spring에서 AOP는 프록시 방식으로 동작한다. 크게 두가지 프록시 방식이 있는데 1. JDK Dynamic Proxy 2. CGLib 이 중 1번 jdk의 동적 프록시에 대해서 개인적으로 찾아보고 생각한 내용을 정리해본다. 프록시가 뭐시여 프록시는 대리 수행하는 놈이라고 생각한다. 사실 프록시는 다양한 곳에서 널리 쓰이는 개념인데, 그렇다면 Spring에서 프록시는 어떤 것으로 생각해야할까. 이렇다는건 아니지만 느낌을 쉽게 받기위해 프록시 유무에 따라 동작을 비교해 본다. 프록시X 프록시 O Service Proxy는 실제 Service가 아니지만 Service인척 Controll..
Spring AOP (Aspect Oriented Programming) AOP란? AOP는 관심 지향 프로그래밍이라는 뜻으로 실제 서비스 기능을 나타내는 비즈니스 로직 전, 후로 로깅이나 성능 검사, 권한 체크 등의 부가적인 기능, 즉 인프라 로직을 추가할 때 사용하는 나타나는 개념으로 인프라 로직이 기능별로 횡단적으로 공통적으로 나타나기 때문에 이를 횡단 관심사라고 한다. AOP는 쉽게 생각하면 이런 횡단 관심사에 따라 프로그래밍 하는 것이라고 생각할 수 있다. 개인적으로는 기능마다 공통적으로 비즈니스 로직 전, 후에 인프라 로직을 추가하는 프로그래밍 이라고 생각한다. AOP는 객체 지향 프로그래밍을 의미하는 OOP와 대비되는것으로 오해할 수 있는데, 실제로 AOP는 OOP를 보완하는 역할로 Spring Document에 나와있다고 한다. (참고 : https://docs..