📝 Spring AOP 개념정리 및 어노테이션 정리
#230512
관점 지향 프로그래밍(Aspect Oriented Programming)
중복되는 공통 코드 부분(commit, rollback, log 처리) 을 별도의 영역으로 분리
➡️ 소스 코드의 중복을 줄이고, 필요할 때마다 가져다 쓸 수 있게 객체화
공통되는 부분을 따로 빼내어 필요한 시점에 해당코드를 추가해주는 기술
Advice : 공통되는 부분을 따로 빼내어 작성하는 메소드
JoinPoint : Advice를 적용될 수 있는 모든 관점(시점, 메소드)
Pointcut : JoinPoint 중 실제 Advice를 적용할 부분
Weaving : 그 시점에 공통 코드를 끼워 넣는 작업
Advice(기능) + Pointcut(수행) = Aspect
실제로 동작 코드를 의미하는 Advice와
작성한 Advice가 실제로 적용된 메소드인 Pointcut을 합친 개념
Spring은 프록시(Proxy) 기반 AOP를 지원
대상 객체를 직접 접근하지 못하게 ‘대리인’으로써 요청을 대신 받는 기술