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이라고 합니다.
'Development > Spring' 카테고리의 다른 글
Maven 프로젝트 설정시 필수항목 (0) | 2020.01.16 |
---|---|
Index downloads are disabled, search results may be incomplete. 해결방법 (0) | 2020.01.06 |
전자정부 표준 프레임워크 개발 가이드 Manual (0) | 2019.12.25 |
Error-Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: 해결방법 (0) | 2019.12.16 |
Logback 라이브러리 설치하기 (0) | 2019.12.02 |