Spring : AOP

이준영·2023년 1월 17일
0

Spring : AOP (Aspect – Oriented Programming)

애플리케이션 전체에 걸쳐 사용되는 기능을 재사용하도록 지원하는 것

AOP의 장점

  • 어플리케이션 전체에 흩어진 공통 기능이 하나의 장소에서 관리된다는 점
  • 다른 서비스 모듈들이 본인의 목적에만 충실하고 그 외 사항들은 신경 쓰지 않아도 된다는 점

AOP 키워드들

Aspect

  • 흩어진 관심사를 모듈화 한 것 ( 여러 핵심 기능에 적용될 관심사 모듈 )
  • 구체적인 기능을 구현한 Advice와
    어디에서 적용될지를 결정하는 PointCut을 포함
  • AOP의 기본 모듈- singleton 형태의 객체로 존재

Advice

  • 타겟에 제공할 부가기능을 담고 있는 모듈 ( 실질적인 부가기능을 담은 구현체 )
  • 실질적으로 어떤 일을 해야할 지에 대한 것
  • Aspect가 무엇을 언제 적용할지를 정의

PointCut

  • 공통 기능이 적용될 대상 결정
  • Advice를 적용할 Target의 메서드를 선별하는 정규 표현식
  • JoinPont의 상세한 스펙을 정의한 것
  • execution으로 시작하고 메서드의 Signature를 비교하는 방법을 주로 이용

JoinPont

  • Advice가 적용될 위치, 끼어들 수 있는 지점
  • 타겟 객체가 구현한 인터페이스의 모든 메서드는 Joinpoint가 됨
  • 메서드 진입 지점, 생성자 호출 시점, 필드에서 값을 꺼내올때 등 다양한 시점에 적용

Target

  • 핵심 기능을 담은 모듈 (=부가 기능 부여 대상)
  • Advice를 받는 객체이고, pointcut으로 결정된다

Advisor

  • 스프링 AOP에서만 쓰는 용어로, 하나의 Advice와 하나의 pointcut으로 구성된 Aspect를 특별하게 지칭하는 말이다

0개의 댓글