Spring에서 AOP 적용하기
·
Spring
AOP에 대해서 알아볼 때 수동 프록시로 구현했던 AOP를 스프링으로 바꿔보자. 스프링을 사용하면 내가 직접 프록시 클래스를 만들고 그 프록시 인스턴스를 호출하지 않아도 된다. DiscountPolicy 구현체(비즈니스 로직)와 AOP 설정(@Aspect, 포인트컷/어드바이스)만 있으면, 스프링이 컨테이너 초기화 시점에 프록시 객체를 자동으로 생성해준다. 그래서 겉보기에는 discountPolicy.discount(...)를 호출한 것처럼 보이지만,실제로는 프록시가 먼저 실행되어 부가 기능을 수행한 뒤 실제 DiscountPolicy의 discount(...) 메서드를 호출한다. 호출 흐름은 이렇게 이해하면 된다. (수동 프록시) 클라이언트 → 내가 만든 Proxy → 실제 DiscountPolicy(스..
AOP랑 OOP랑 뭐가 다르지?
·
Programming
AOP란?Aspect Oriented Programming은 횡단 관심사(Cross-Cutting Concern)의 분리를 허용함으로써 모듈성을 높이는 것을 목적으로 하는 프로그래밍 패러다임이다. AOP를 사용하면 여러 객체에 공통적으로 적용되는 기능(예: 로깅, 보안, 트랜잭션 관리 등)을 핵심 로직에서 분리하여 별도의 모듈(Aspect)로 관리하게 된다. 이를 통해 개발자는 반복적인 공통 기능을 매번 구현할 필요가 없어지고, 핵심 비즈니스 로직 개발에 집중할 수 있다. 예시를 들어 설명하기 위해서 여러 할인 정책이 있고, 오류 추적을 위해 로깅을 추가했다고 하자. 처음엔 FixedDiscountPolicy에 단순히 System.out.println을 위·아래로 넣어 처리했다.public class ..