내용
코드적으로는 어렵지 않지만 이론적으로 알아야 할 것들이 많다.
이론은 어렵고 심오하다.. 천천히 알아보기
지금은 코드를 사용하는 법을 알아보자.
비지니스 로직을 실행 하기 전, 부가 기능을 사용해야 한다면 하나의 Service 객체에 두가지 로직이 같이 있어야함.
여러 위치에서 공통적으로 사용되는 부가 기능
변경 지점은 하나가 될 수 있도록 만드는 것
관점 지향 프로그래밍
하나의 로직을 기준으로 공통 관심 사항과 핵심 관심 사항으로 관점을 분리하여 관점들을 기준으로 모듈을 분리.
부가 기능(공통 관심 사항)을 핵심 기능(핵심 관심 사항)에서 분리하고 한 한 곳에서 관리하는 기능
Advice
-> 부가기능을 하나의 위치에서 관리
pointcut
-> 어떤 위치에 적용 할지 정의
AOP 적용 가능 지점
AspectJ를 사용하면 모든 곳에서 사용 가능 하지만, Spring AOP는 다르다.
-> 실무에서는 Spring AOP로 해결이 가능하니, 일단 Spring AOP에 집중 학습
Spring AOP의 경우 프록시 방식을 사용하여 메서드 실행 시점에만 Spring AOP를 적용
잘 보고가요