AOP : Ioc/DI2 와 함께 스프링 프레임 워크에서 중요한 내용
Aspect Oriented Programing의 약자로 관점 지향 프로그래밍이라고 함.
OOP를 더욱 OOP답게 사용하도록 도와주는 개념이다
애플리케이션 전반에서 사용되는 기능을 여러코드에 쉽게 적용할 수 있도록 한다.
(권한체크, 로그 ,트랜잭션등)
공통된 기능을 재사용하는것
비지니스로직을 구현한 코드에서 공통 기능 코드를 직접 호출하지 않는다.
공통 기능과 비지니스 기능을 따로 개발한 후 컴파일 하거나 컴파일도니 클래스를 로딩하는 시점 등에서
AOP가 적용되어 비지니스로직 코드 사이에 공통 기능 코드가 삽입된다.
관점(Aspect) - 공통적으로 적용될 기능을 의미한다. 횡단 관심사의 기능이라고도 할 수 있으며
한개 이상의 포인트컷과 어드바이스의 조합으로 만들어진다.
어드바이스(Advice) - 관점의 구현체로 조인포인트에 삽입되어 동작하는 것을 의미한다.
스프링에서 사용하는 어드바이스는 동작하는 시점에 따라 다섯 종류로 구분된다.
조인포인트(JoinPoint) - 어드바이스를 적용하는 지점을 의미한다. 스프링 프레임워크에서 조인포인트는 항상 메서드 실행 단계만 가능하다
포인트컷(pointCut) : 어드바이스를 적용할 조인 포인트를 선별하는 과정이나 그 기능을 정의한 모듈을 의미한다.
정규표혀닉이나 AspectJ의 문법을 이용해서 어떤 조인 포인트를 사용할지 결정한다.
타깃(target) : 어드바이스를 받을 대상을 의미한다.
위빙(Weaving) : 어드바이스를 적용하는것을 의미한다. 즉 공통코드를 원하는 대상에 삽입하는것을 뜻함.
'프로그래밍 이야기 > SPRING BOOT 공부' 카테고리의 다른 글
@RequiredArgsConstructor 어노테이션 (0) | 2023.09.07 |
---|---|
웹애플리케이션컨테이너, 클래스로더의 특징 (0) | 2023.08.23 |
스프링 프레임 워크의 변화 (0) | 2023.08.13 |
인프라 변화에 따른 기술의 변화 (0) | 2023.08.12 |
STS There are no resources that can be added or removed from server. 에러 해결하기 (0) | 2023.08.03 |