본문 바로가기

Spring Framework

AOP란 (Aspect Oriented Programming)

반응형

OOP는 객제지향 프로그래밍으로 요즘 개발을 하는 사람들은 전부 다 들어보았을 것이다. 

 

그렇다면 AOP는 무엇일까 나도 처음에 이 단어를 들었을 때 너무 생소한 단어였다.

핵심은 '공통'  과 '분리'이다

 

AOP를 직역하자면 관점 지향 프로그래밍으로서 우리가 프로그래밍을 하다보면 공통적인 기능이 많이 발생한다. 물론  공통기능을 모든 모듈에서 상속을 통해 개발할수 있지만 java에서는 다중 상속이 불가능하다. 그리고 핵심코드와 공통기능코드가 섞여있어 가독성이 떨어지고 효율성이 떨어진다. 

 

 

 

즉 AOP는 핵심기능과 공통기능을 분리시켜 놓고 공통기능을 필요로 하는 핵심 기능에서 사용하는 방식이다. 

큰 개념으로는 결국 공통된 기능을 재사용하는 것이라고 봐도 무방하겠다.

 

 용어들에 대해 정리하자면

 

Target : 부가기능(핵심기능)을 부여할 대상

 

Advice : 실질적으로 부가기능을 담은 구현체

 

PointCut : 어느 모듈 및 메서드를 대상으로 실행이 되는지를 결정

 

Aspect : 핵심기능에 부가되어 의미를 갖는 특별한 모듈.(Advice + PointCut)

 

JoinPoint : 어드바이스가 적용될 수 있는 위치

 

Weaving : JointPoint와 PointCut에 의해 결정된 대상 및 시점에 Advice를 실행 하는 과정

 

 

AOP를 활용하여 얻게 되는 장점들

 

* 중복코드의 제거 : 공통기능을 따로 모아두기 때문

 

* 비즈니스로직 가독성 향상 : 핵심기능(비즈니스로직)과 공통기능을 분리

 

* 주요비즈니스 로직에 집중하여 개발가능  >> 생산성 향상

 

* 좋은 재사용성 효율 : 공통기능코드를 여러 핵심기능코드에서 사용가능

 

 

정도가 있겠다. 

반응형

'Spring Framework' 카테고리의 다른 글

Lombok 플러그인  (0) 2021.01.25
<Spring> MVC 방식  (0) 2020.10.13