AOP(Aspect Oriented Programming), 기존 방식, AOP 적용 방식

CODEDRAGON Development/Spring

반응형



 

AOP(Aspect Oriented Programming)

·         AOP OOP 더욱 OOP 답게 만들어 있습니다. , OOP 지원해주는 개념입니다.

·         AOP OOP뿐만 아니라 기존의 절차적 프로그래밍에도 적용될 있습니다.

·         AOP 애플리케이션에서의 관심사(관점) 분리(기능의 분리) , 핵심적인 기능에서 부가적인 기능을 분리합니다. 분리한 부가기능을 애스펙트 (Aspect)라는 독특한 모듈형태로 만들어서 설계하고 개발하는 방법입니다.

·         OOP 적용하여도 핵심기능에서 부가기능을 분리된 모듈로 작성하기 어려웠던 문제점을 AOP 해결해 준다고 있습니다.

·         AOP 부가기능을 애스펙트(Aspect) 정의하여, 핵심기능에서 부가기능을 분리함으로써 핵심기능을 설계하고 구현할 객체지향적인 가치를 지킬 있도록 도와주는 개념입니다.

 

 

 

 

기존 방식

하나의 Application안에 핵심기능(Primary Concern) 부가기능(Cross-Cutting Concern) 함께 썩여있습니다.


 

 

 

 

AOP 적용 방식

·         비즈니스 로직을 구현한 부분인 핵심기능(Primary Concern) 보안, 인증등 부가기능(Cross-Cutting Concern) 분리할 있습니다.

·         부가기능을 Advice 정의해서 분리하고 핵심기능에 적용하기 위해 Point-Cut 정의합니다. Advice Point-Cut 묶어서 Aspect라고 합니다.

·         Advice Point-Cut 정규표현식에 의거해서 핵심기능에 적용하는 과정을 Weaving이라고 합니다.