SPRING
AOP란?
brilliant-growth
2023. 7. 5. 10:35
OOP : JAVA C++ C# ..
AOP : AspectJ
AOP(Aspect Oriented Programming) : 코드 삽입
여러 객체에 공통으로 적용할수 있는 기능을 분리함으로써
재사용을 높여 프로그래밍기법
업무로직을 포함하는 기능 : 핵심기능(Core Concerns)
핵심기능을 도와주는 부가기능(로깅,보안,감사 ..) : Cross-cutting Concerns
Aspect : 흩어진 관심사를 모듈화한것 (부가기능 모듈화)
Target : Aspect 를 적용하는 곳(클래스,메서드 ..)
Advice : 실질적으로 어떤 일을 해야할지에 대한 것
JoinPoint : Advice가 적용될 위치, 끼어들수 있는 지점
Pointcut : joinPoint의 상세한 스펙을 정의 한것
: 이체메서드의 진입시검에 호출할 것
AOP 적용하는 방법
1. 컴파일 시점에 코드를 핵심기능에 공통기능(부가기능)을 추가하는 방법
2. 클래스 로딩시 바이트 코드에 공통기능을 추가하는 방법
3. 런타임시에 프록시 객체를 생성해서 공통기능을 추가하는 방법(스프링이 적용하는 방식)