Spring AOP

yoneeki·2022년 12월 8일
0

개요

  • 비즈니스 로직(서비스에 필요한 핵심 기능 등)
    인프라 로직 (시간 재기-로그 남기기, 트랜잭션 걸기, 권한체크 등 부가 기능)
  • 인프라 로직 : 애플리케이션의 전 영역에서 나타남. 중복 코드를 만들어 낼 가능성 때문에 유지보수가 힘들 수 있음. ex) 1억 개의 메서드에 동일한 내용의 어떤 기능이 기재되어 있다면? 그 기능을 바꿀 때 1억번 수정...?!
  • 이처럼 메서드(기능)마다 추가 되어 있는 인프라 로직을 횡단 관심 (cross-cuttig concern)이라 한다.

AOP

  • AOP : Aspect-Oriented Programming (관점 지향 프로그래밍). 앞서 말한 횡단 관심에 따라 프로그래밍을 하는 것.

AOP 주요 용어

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

AOP의 구현 방법

  • 컴파일
  • 클래스 로드시
  • 프록시 패턴

Transactional

  • @Transactional으로 생성된 프록시 객체는 @Transactional이 적용된 메소드가 호출될 경우, PlatformTransactionManager를 사용하여 트랜잭션을 시작하고, 정상 여부에 따라 Commit/Rollback 동작을 수행한다.
  • 이로 인해 우리는 비즈니스 로직에만 집중하고 트랜잭션이라는 인프라 로직은 AOP로 분리되게 된다.
  • @Interceptor, @Filter도 AOP의 일종이다.
profile
Working Abroad ...

0개의 댓글

관련 채용 정보