본문 바로가기
영상 후기/Spring Boot

영상 후기 - [10분 테코톡] 🌕제이의 Spring AOP

by 올리브영 2023. 4. 6.
728x90
반응형

movie

1. AOP에 대하여

서비스에서 필요한 내용은 비즈니스 로직이라고 불리는 핵심 기능만 수행할 수 있으면 된다.

그 외에 시간을 재거나 권한을 체크하거나 트랜잭션을 거는 것은 모두 일종의 인프라 로직이다.

 

인프라 로직

  • 부가기능이기 때문에 애플리케이션의 전 영역에서 나타날 수 있음.
  • 중복코드를 만들어낼 가능성 때문에 유지보수가 힘들어짐(ex) 1억개의 메서드에 스탑워치 기능 추가하는 것))
  • 비즈니스 로직과 함께 있으면 비즈니스 로직을 이해하기 어려워짐.
  • 로깅, 트랜잭션, 권한 검사, 성능 측정

AOP(Aspect-Oriented Programming) 용어

  • Tartget
    • 어떤 대상에 부가 기능을 부여할 것인가
  • Advice
    • 어떤 부가 기능? Before, AfterReturning, AfterThrowing, After, Around
  • Join point
    • 어디에 적용할 것인가? 메서드, 필드, 객체, 생성자 등
  • Point cout
    • 실제 advice가 적용될 지점, Spring AOP에서는 advice가 적용될 메서드를 선정

 

2. Spring AOP 사용(supported by @AspectJ)

AOP의 구현 방법

  • 컴파일
    • J.java라는 클래스를 j.class라는 파일로 컴파일하는 시점에 해당하는 aspect들을 끼워넣어 AOP 적용.
  • 클래스 로드시
    • J.class라는 파일까지 컴파일되는 것까지는 괜찮은데 이걸 이제 클래스 로더가 메모리상에 올릴 때에 AOP 적용.
  • 프록시 패턴
    • 스프링 AOP에서 사용하는게 프록시 패턴이다.
    • J라는 타겟 클래스를 프록시로 감싸서 부가 기능을 제공하는 프록시로 감싸서 실행하는 방식
    • IoC와 Di를 기반으로 하기 때문에 가능한 방식이다.

 

 

728x90
반응형