Spring AOP

keymu·2025년 2월 11일
0

서비스에 필요한 기능: 비즈니스 로직
시간을 재거나, 권한을 체크하거나, transaction을 거는 기능(=부가기능): 인프라 로직

인프라 로직

  • 애플리케이션 전 영역에서 나타남
  • 중복코드 -> 유지보수 힘듬
  • 비즈니스 로직과 섞여 있어 비즈니스 로직을 이해하기 힘들게 만듬
  • 로깅, 트랜잭션, 성능 측정 등의 부가기능
  • Cross-cutting concern

Aspect-Oriented Programming

  • OOP와 같은 하나의 패러다임으로, 각 언어마다 AOP 구현체를 필요로 함
  • Java: AspectJ

Target

  • 어떤 대상에 부가 기능을 부여할 것인가

Advice

  • 어떠한 기능을 부가할 것인가

Join point

  • 어디에 적용할 것인가: 메서드가 호출, 실행, 필드에 접근할 때, 필드에 접근할 때 등에 적용 / But Spring에서는 메서드가 실행될 때 만으로 한정

Point cut

  • 포인트컷(Pointcut)은 관심 조인 포인트를 결정하므로 어드바이스가 실행되는 시기를 제어할 수 있음
profile
Junior Backend Developer

0개의 댓글