(spring) AOP
💼📝🔑⏰ 📙📓📘📒🎓
xml 예제 프로젝트 : 07.spring-aop
코드 추가용 예제 프로젝트 : 07.spring-aop2
💼 AOP(Aspect Oriented Programming)
- 횡단 관심사 (crosscutting concerns)를 구현하는 도구
- 동일한 구현을 효과적으로 다수의 객체에 적용할 수 있는 방법
- 여러 객체에 공통으로 적용할 수 있는 기능을 분리해서 재사용성을 높여주는 프로그래밍 기법
- 핵심 기능과 공통 기능의 구현 분리
- 객체지향 프로그래밍 기법 보완
- 구현 방법에 따라 정적 AOP와 동적 AOP로 구분
- 정적 AOP : 컴파일 시점에 대상 객체에 바이트코드 수준의 변경을 적용
- 동적 AOP : 런타임에 프록시 객체 생성
📝 용어
- 조인포인트
- 애플리케이션 실행의 특정 지점을 의미
- AOP에서 횡단 관심사를 적용하는 위치를 표시하는데 사용
- 어드바이스
- 특정 조인포인트에 적용(실행)할 코드
- 실행시점에 따라 Before Advice, After Advice 등으로 구현
- 포인트컷
- 여러 조인포인트의 집합으로 어드바이스를 실행하는 위치 표시
- 애스팩트
- 어드바이스와 포인트컷을 조합해서 횡단 관심사에 대한 코드와 그것을 적용할 지점을 정의한 것
- 위빙
- 애스팩트를 실제 적용하는 과정 (정적 / 동적 방식이 구분되는 조건)
- 타겟
- 어드바이스가 적용된 객체
📝 스프링 AOP
- 로그와 트랜젝션 처리에 많이 사용된다.
- AOP 기능을 넣으면 오버해드는 발생하니 꼼꼼한 검토가 필요하다.
댓글남기기