Spring에서 AOP란?

Rosa·2020년 9월 4일
0

AOP(Aspect Oriented Programming)

기존의 OOP에서 기능별로 class를 분리했음에도 불구하고, 여전히 로그, 트랜잭션, 자원 해제, 성능테스트 메서드처럼 공통적으로 반복되는 중복코드가 여전히 발생하는 단점을 해결하고자 나온 방식이다. 이러한 공통 코드는 "Concerns"라 표현하며 개발코드에서는 비지니스 로직에 집중하고, 실행 시에 비즈니스 로직 앞, 뒤 원하는 지점에 해당 공통 관심사를 수행할 수 있게 함으로써 중복 코드를 줄일 수 있는 방식입니다.

어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화한다. 이 때, 소스코드 상에 계속 반복해서 쓰는 코드를 흩어진 관심사("Crosscutting Concerns")라고 하며, 흩어진 관심사를 Aspect로 모듈화하고 핵심적인 비즈니스 로직에서 분리하여 재사용하겠다는 것이 AOP의 취지이다.

참고

https://velog.io/@max9106/Spring-AOP%EB%9E%80-93k5zjsm95
https://engkimbs.tistory.com/746
https://shlee0882.tistory.com/206

profile
기록, 메모

0개의 댓글