AOP
AOP란
- OOP를 지향하는 프로그래밍 기술
- 클래스 로직에서 부가기능을 분리함으로써 핵심기능을 설계 및 구현시 객체지향적인 가치를 지킬 수 있도록 한다
- 즉 부가적인 기능을 독립적으로 모듈화하는 프로그래밍 모델이다
스프링의 AOP
- POJO 프로그래밍을 지원하기 위한 목적을 가지고 있다
- 다이나믹 프록시 방식의 AOP로 접근 제어와 부가기능 추가 등의 다양한 목적을 붙힐 수 있다
- 스프링 빈에만 AOP를 적용 가능하다
- 런타임에 어드바이스를 삽입한다
AOP 용어
타깃
- 부가기능을 부여할 대상
어드바이스
- 부가기능을 담은 모듈
1
2
3
4
5
6
조인 포인트
- 어드바이스가 적용될 위치
- 스프링 AOP의 조인 포인트는 메소드의 실행 단계이다
포인트 컷
- 포인트 컷을 통해 특정 메소드들에 한정하여 다른 부가 기능을 설정할 수 있다
프록시
- 클라이언트와 타킷 사이에 존재하며 부가기능을 제공하는 오브젝트
- DI를 통해 카깃 대신 클라이언트에게 주입되며 클라이언트의 메소드 호출을 받아 타깃에 위임하며 부가기능을 부여한다
어드바이저
- 포인트컷과 어드바이스를 하나씩 갖고 있는 오브젝트