본문 바로가기

Spring

AOP(Aspect Oriented Programming)

AOP

 - 흩어진 코드를 한 곳으로 모으는 코딩 기법

 - 바이트 패턴과 프록시 패턴 사용 방법이 있음

 - Spring AOP에서는 프록시 패턴을 사용

 - 관점 지향 프로그래밍

 - 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어보고 그 관점을 기준으로 각각 모듈화하겠다.

  ● 모듈화 : 어떤 공통된 로직이나 기능을 하나의 단위로 묶는 것

  ● 핵심적인 관점 : 업무 로직을 포함하는 기능

  ● 부가적인 관점 : 핵심 기능을 도와주는 부가적인 기능

 - AOP에서 각 관점을 기준으로 로직을 모듈화 한다는 것은 코드들을 부분적으로 나누어서 모듈화 한다는 것

 - 이때, 소스 코드 상에서 다른 부분에 계속 반복해서 쓰는 코드들을 발견할 수 있는데 이것을 흩어진 관심사라 부름

 

AOP의 특징

 - 프록시 패턴 기반

 - 프록시가 호출을 가로챔

 - 매서드 조인 포인트만 지원

 

출처 - https://ss-o.tistory.com/137