프로그램을 설계할 때 사용하는 프로그래밍 패러다임 Aspect(측면, 양상) Oriented(지향의) Programming의 약자 말 그대로 관점 지향 프로그래밍 이다.
Spring은 AOP를 지원하기 위해 특별한 기능과 구조를 제공함 Spring AOP의 특징 프록시 기반 AOP 구현 > 런타임에 대상 객체를 감싸는 동적 프록시를 만듬 > 메서드 실행 시점에 부가기능을 끼워넣는 방식을 사용 해당 구조는 메서드 호출 시에만 AOP
기술적 제약과 의도된 설계 선택으로, 복잡성을 줄이고 실용성을 높이기 위한 결정
Spring은 개발 편의성과 유연성을 중시함 대부분의 웹 애플리케이션에서 성능 차이는 미미하지만, 개발과 운영의 편의성은 크게 향상됨
다른 객체에 대한 대체 또는 자리표시자를 제공하는 디자인 패턴실제 객체에 대한 접근을 제어하면서 추가적인 기능을 제공함프록시 객체는 실제 객체와 동일한 인터페이스를 구현클라이언트가 실제 객체 대신 프록시 객체와 상호작용 가능케 함클라이언트는 프록시 객체를 통해 간접적으