[Spring] AOP

박연주·2022년 8월 26일
0

Spring

목록 보기
13/24

AOP(Aspect Oriented Programming)

AOP를 통해서 중복 코드 제거, 효율적인 유지보수, 높은 생산성, 재활용성 극대화, 변화 수용 용이 등의 이점을 얻을 수 있다.

위 그림에서 처럼 계좌이체, 입출금, 이자계산이라는 로직을 처리할 때, 모두 똑같이 로깅, 보안, 트랜잭션을 처리해줘야한다.

따라서 모든 로직에 똑같은 코드가 반복적으로 삽입될 수 밖에 없다.

하지만 AOP에서는 로깅, 보안, 트랜잭션이라는 공통 관심(Aspect)을 따로 빼내어 계좌이체, 입출금, 이자계산이라는 핵심 관심에 횡단으로 삽입해 주는 것이다.

이렇게 각 객체별로 처리했던 것을 각 관점별로 외부에서 접근을 하는것이 AOP의 핵심이다.

즉 개발자는 계좌이체, 입출금, 이자계산과 같은 핵심 기능을 만들고, 공통적인 관심 기능(로깅, 보안, 트랜잭션)을 처리하는 모듈을 분리해서 개발한 후, 필요한 시점에 자동으로 공통적인 관심 기능이 삽입되도록 하는것이다.

AOP
OOP의 한계와 AOP의 등장

profile
하루에 한 개념씩

0개의 댓글