AOP

Jason·2023년 8월 28일
0

내맘대로 해석하는 개발 용어

AOP (Aspect-Oriented Programming)

  1. Core Concern / Crosscutting Concern:

    • Core Concern: 메인 코드. Business logic 을 주로 말한다.
      ex) Business logic

    • Crosscutting Concern: Core Concern 진행 중에 계속 치고 들어오는 복붙 많은 코드
      ex) 로깅, 트랜잭션 관리, 보안 등
  2. Target Object:

    • Target Object는 AOP의 대상이 되는 객체다.
      주로 이 객체에 대한 메서드들이 대상이다.
  3. Advice:

    • Advice는 Crosscutting Concern 을 언제, 어떻게 실행할지 정의한다.
      ex) 메서드 실행 전/후 에 실행
  4. Join-Point:

    • Join-Point는 Advice가 적용될 수 있는 특정한 지점

      ex1) 메서드 호출, 필드 접근, 예외 발생 시점.
      ex2) Spring Framework 는 메서드 만 Join-Point 입니다.
  5. Pointcut:

    • Pointcut은 Join-Point의 규칙.
      어떤 Join-Point 에 Advice 를 적용할지를 결정한다.
  6. Advisor (Aspect):

    • Advice + Pointcut = Advisor : 감독관 같은 존재다.
      어떤 Pointcut 에서 어떤 Advice를 실행할지를 결정한다.
  7. Weaving:

    • Aspect 를 Target Object 에 말 그대로 꿰매는 행위.
      Aspect는 컴파일 타임, 로드 타임, 런타임 중 어느 한 시점에 타겟 객체에 꿰매진다.
  8. Proxy / Dynamic Proxy:

    • Proxy 는 대리인이다. 실제 Target Object를 감싸서 Aspect 에 정의된 Advice 를 호출하기 위한 중간 객체이다.
      이를 통해 AOP에서 코드의 중복을 줄이고 Crosscutting Concerns를 분리할 수 있다.
    • Dynamic Proxy는 런타임에 생성된다고 한다.
      실제 사용 예시는 아직 모르겠다.. 나중에 알게 되겠지..
profile
어제보다 매일 1% 성장하고 있습니다.

0개의 댓글