Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고도 한다
관점 지향 프로그래밍은 핵심적인 기능(비즈니스 로직)과 부가적인 기능(데이터베이스 연결, 로깅 등)을 분리하여 각 관점을 기준으로 모듈화 하는 방식
예를 들어 모든 함수에 공통적으로 사용하고 있는 로깅 기능이 수정이 필요한 경우 모든 함수에서 기능을 수정해주어야 하기 때문에 유지보수면에서 효율적이지 않고, 코드의 중복이 발생하게 된다
이러한 문제점을 해결하기 위해 나온 기술이 AOP
각 객체별로 처리했던 것을 각 관점별로 외부에서 접근 하는 것이 AOP의 핵심!
implementation 'org.springframework.boot:spring-boot-starter-aop'
클래스 생성
aop -> Logging 클래스 추가
대상 선정 및 구현체 작성
로그 확인
[참고자료]