11.26 TIL - AOP 개념

이서준·2025년 11월 26일

TIL

목록 보기
9/24

AOP

  • 공통 관심사를 핵심 비즈니스 로직에서 분리해서 재사용/관리/주입하는 기법
  • 핵심 기능과 부가 기능을 분리

핵심 기능 용어

Join point (조인 포인트)

  • 어드바이스가 적용될 수 있는 위치, 메서드 실행, 생성자 호출, 필드 값 접근, static 메서드 접근 같은 프로그램 실행 중 지점
  • 조인 포인트는 추상적인 개념, AOP를 적용할 수 있는 모든 지점
  • 스프링 AOP는 프록시 방식을 사용하므로 조인 포인트는 항상 메서드 실행 지점으로 제한

Pointcut (포인트컷)

  • 조인 포인트 중에서 어드바이스가 적용될 위치를 선별하는 기능
  • 주로 AspectJ 사용해서 지정
  • 프록시를 사용하는 스프링 AOP는 메서드 실행 지점만 포인트컷으로 선별 가능

Target (타겟)

  • Advice를 받는 객체, 포인트컷으로 결정

Advice(어드바이스)

  • 부가기능
  • 특정 조인 포인트에서 Aspect에 의해 취해지는 조치
  • Around(주변), Before(전), After(후)와 같은 다양한 종류의 어드바이스가 있음

Aspect

  • 어드바이스 + 포인트컷을 모듈화 한 것
  • 여러 어드바이스와 포인트 컷이 함께 존재
  • @Aspect

Advisor (어드바이저)

  • 하나의 어드바이스와 하나의 포인트 컷으로 구성
  • 스프링 AOP에서만 사용되는 특별한 용어

Weaving (위빙)

  • 포인트컷으로 결정한 타켓의 조인 포인트에 어드바이스를 적용
  • 위빙을 통해 핵심 기능 코드에 영향을 주지 않고 부가 기능을 추가 할 수 있음
  • AOP 적용을 위해 Aspect를 객체에 연결한 상태
    • AspectJ compiler (컴파일 타임)
    • 로드 타임
    • 런타임, 스프링 AOP는 런타임, 프록시 방식
profile
Allons-y

0개의 댓글