(spring) AOP

최대 1 분 소요

💼📝🔑⏰ 📙📓📘📒🎓

xml 예제 프로젝트 : 07.spring-aop
코드 추가용 예제 프로젝트 : 07.spring-aop2 

💼 AOP(Aspect Oriented Programming)

  • 횡단 관심사 (crosscutting concerns)를 구현하는 도구
  • 동일한 구현을 효과적으로 다수의 객체에 적용할 수 있는 방법
    • 여러 객체에 공통으로 적용할 수 있는 기능을 분리해서 재사용성을 높여주는 프로그래밍 기법
    • 핵심 기능과 공통 기능의 구현 분리
  • 객체지향 프로그래밍 기법 보완
  • 구현 방법에 따라 정적 AOP와 동적 AOP로 구분
    • 정적 AOP : 컴파일 시점에 대상 객체에 바이트코드 수준의 변경을 적용
    • 동적 AOP : 런타임에 프록시 객체 생성

📝 용어

  • 조인포인트
    • 애플리케이션 실행의 특정 지점을 의미
    • AOP에서 횡단 관심사를 적용하는 위치를 표시하는데 사용
  • 어드바이스
    • 특정 조인포인트에 적용(실행)할 코드
    • 실행시점에 따라 Before Advice, After Advice 등으로 구현
  • 포인트컷
    • 여러 조인포인트의 집합으로 어드바이스를 실행하는 위치 표시
  • 애스팩트
    • 어드바이스와 포인트컷을 조합해서 횡단 관심사에 대한 코드와 그것을 적용할 지점을 정의한 것
  • 위빙
    • 애스팩트를 실제 적용하는 과정 (정적 / 동적 방식이 구분되는 조건)
  • 타겟
    • 어드바이스가 적용된 객체

📝 스프링 AOP

  • 로그와 트랜젝션 처리에 많이 사용된다.
  • AOP 기능을 넣으면 오버해드는 발생하니 꼼꼼한 검토가 필요하다.

댓글남기기