스프링 AOP(2)
-
[ Spring ] AOP ( Aspect Oriented Programming ) - 핵심 관심 호출하기 ( 사용된 인자와 메서드명, 반환 값 확인 하기 )
Advice ( 횡단 관심, 공통 로직 )를 효율적으로 사용하려면, 핵심 관심( 비즈니스 메서드, CRUD )을 알아야 한다. 이때, JoinPoint 가 제공되고, 핵심 관심을 넣어주는 것은 컨테이너의 역할이다. 어제 사용한 LogAdvice를 다음과 같이 수정한다. 1. Join Point를 인자로 지정해주어 자동으로 초기화될 수 있도록 해준다. 2. jp.getSignature( )와 getName()을 통하여 메서드의 이름을 호출할 수 있게 작성해준다. 3. System.out.println("호출된 핵심관심 : "+ methodName); 을 작성하여 값을 확인할 수 있도록 해준다. 4. Object배열에서 getArgs( ) 메서드로 해당 메서드에 사용된 인..
2022.04.07 -
[ Spring ] AOP ( Aspect Oriented Programming ) - 관점 지향 프로그래밍 | 로그 작성하기
사용 목적 공통적으로 수행되는 로직을 공통 로직 ( 횡단 관심 ) 이라 부르는데, 공통 로직과 핵심 로직 ( 비즈니스 메서드, CRUD ) 으로 분리하기 위해 사용한다. ex) 로깅 인증, 허가, 트랜잭션, 연결, 해제 등등 ( 공통 로직 ) 1. LogAdvice 클래스를 생성해준다. 2. 비즈니스 메서드마다 new 해줘도 로그는 남겨진다. 하지만 결합도가 높아지기 때문에 유지 보수에 매우 불리한 코드가 된다. 3. 결합도를 낮추기 위해 LogAdvice를 멤버 변수화하여 상단에 작성해준다. (의존관계) 4. 클라이언트에서 실행을 하면 결과는 이렇게 나온다. Q. 만약에 로그 2를 만들면 어떻게 될까? ( ex. 버전 관리 ) A. 여전히 결합도가 높아서 메서드명을 하나하나 바꾸어줘야 한다. 해결 방법..
2022.04.04