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. 런타임시에 프록시 객체를 생성해서 공통기능을 추가하는 방법(스프링이 적용하는 방식)
'SPRING' 카테고리의 다른 글
DI의 종류 (0) | 2023.07.05 |
---|---|
aop적용방식 (0) | 2023.07.05 |
단위테스트 (0) | 2023.07.05 |
Spring Framework란? (0) | 2023.07.05 |
스프링 어노테이션 종류 (0) | 2023.06.28 |