프로그래밍 이야기/SPRING BOOT 공부

AOP의 개념

글쓰는 개발자 김뉴네 2023. 8. 10. 10:14
728x90
반응형

AOP :  Ioc/DI2 와 함께 스프링 프레임 워크에서 중요한 내용
 Aspect Oriented Programing의 약자로 관점 지향 프로그래밍이라고 함.
 OOP를 더욱 OOP답게 사용하도록 도와주는 개념이다
 애플리케이션 전반에서 사용되는 기능을 여러코드에 쉽게 적용할 수 있도록 한다.
 (권한체크, 로그 ,트랜잭션등)

 공통된 기능을 재사용하는것
 비지니스로직을 구현한 코드에서 공통 기능 코드를 직접 호출하지 않는다.
 공통 기능과 비지니스 기능을 따로 개발한 후 컴파일 하거나 컴파일도니 클래스를 로딩하는 시점 등에서
 AOP가 적용되어 비지니스로직 코드 사이에 공통 기능 코드가 삽입된다.

관점(Aspect) - 공통적으로 적용될 기능을 의미한다. 횡단 관심사의 기능이라고도 할 수 있으며
      한개 이상의 포인트컷과 어드바이스의 조합으로 만들어진다.
어드바이스(Advice) - 관점의 구현체로 조인포인트에 삽입되어 동작하는 것을 의미한다.
 스프링에서 사용하는 어드바이스는 동작하는 시점에 따라 다섯 종류로 구분된다.

 조인포인트(JoinPoint) - 어드바이스를 적용하는 지점을 의미한다. 스프링 프레임워크에서 조인포인트는  항상 메서드 실행 단계만 가능하다

 포인트컷(pointCut) : 어드바이스를 적용할 조인 포인트를 선별하는 과정이나 그 기능을 정의한 모듈을 의미한다.
    정규표혀닉이나 AspectJ의 문법을 이용해서 어떤 조인 포인트를 사용할지 결정한다.

    타깃(target) : 어드바이스를 받을 대상을 의미한다.

    위빙(Weaving) : 어드바이스를 적용하는것을 의미한다. 즉 공통코드를 원하는 대상에 삽입하는것을 뜻함.

728x90
반응형