스프링 AOP 개념

💜poiuyy0420·2021년 1월 14일
0

Spring

목록 보기
2/2
post-thumbnail

AOP란?

스프링의 IoC가 결합도와 관련된 기능이라면, AOP(Aspect Orientend Propramming)는 응집도와 관련된 기능이라고 할 수 있다.

AOP를 이해하는 가장 중요한 핵심 개념은 관심 분리(Sparation of Concerns)이다.
AOP에서는 메소드마다 공통으로 등장하는 로깅이나 예외, 트랜잭션 처리 같은 코드들을 횡단 관심(Crosscutting Concerns)이라고 한다. 이에 반해 사용자의 요청에 따라 실제로 수행되는 핵심 비즈니스 로직을 핵심 관심(Core Concerns)이라고 한다.

그림을 보면 회색부분은 횡단관심, 하늘색 부분은 핵심 관심이다.

만약 두 관심을 완벽하게 분리할 수 있다면, 더욱 간결하고 응집도 높은 소스를 유지할 수 있다.

AOP는 관점 지향 프로그래밍이라고 한다. 어떤 로직을 기준으로 핵심 관심과 횡단 관심을 을 나누어서 보고 그 관점을 기준으로 각각 모듈화 하는 것이다. 핵심 관심 메소드와 횡단 관심 메소드 사이에서 소스상의 결합은 발생하지 않으며, 이것이 AOP를 사용하는 주된 목적이다.

profile
안녕하세요 :)

0개의 댓글