정보관리기술/소프트웨어공학

AOP(Aspect Oriented Programming) / ①

아이티신비 2024. 1. 25. 09:30

문제3) AOP(Aspect Oriented Programming)

 

답)

 

 

1. OOP 한계를 보완하기 위한 패러다임, AOP(Aspect Oriented Programming) 정의

  • 관심사의 분리(Separation of Concern) 원칙에 기반하여, 시스템 구성을 핵심 관심사와 횡단 관심사로 분리하고 Weaving 을 통해 이를 엮어 프로그램을 구현하는 방법론

 

 

2. AOP 의 구성도와 구성요소

가. AOP의 구성도

 

나. AOP의 구성요소

구분
구성요소
설명
사례
관심사
핵심관심사
  • 단일 모듈이 가지는 주된 요구사항
  • Business Logic
횡단관심사
  • 여러 개 모듈에 공통적 사용되는 부가적인 요구사항
  • Logging, Security, Transaction, Error Handler
프로그래밍 요소
결합점
(Joint Point)
  • Aspect 를 플러그인 할 수 있는 애플리케이션 실행지점, Advice 를 적용하는 지점
  • 필드, 메소드의 호출
교차점
(Point Cut)
  • Advice 가 어떤 Joint Point 에 적용되는지를 정의
  • 명시적 클래스/메소드 이름, 클래스와 메소드 이름의 패턴과 일치하는 정규식
 
Advice
  • Aspect의 실제 구현체로 어플리케이션의 JointPoint 에 삽입
  • Before Advice, After, Around 등
직조
(Weaving)
  • Advice 를 핵심 로직 코드에 적용(컴파일, 클래스 로딩, 런타임 시점)
  • 컴파일 시, 클래스 로 시, 런타임 시 엮기
Aspect
  • 구현하고자 하는 횡단관심사의 기능
  • 업무에 적용된 로깅
Target
  • Advice 받는 클래스(커스텀 클래스, 써드파티 클래스)
  •  

 

3. AOP 기대효과


  • 하나의 클래스에 핵심과 횡단 관심사가 혼재되어 프로그램의 가독성 및 재활용성에 비효율이 발생함에 따라 관심사를 분리하고 단순화 하여 코드의 재활용과 유지보수의 효율성을 극대화

 


 

공감과 댓글은 아이티신비에게 큰 힘이 됩니다.

블로그 글이 유용하다면 블로그를 구독해주세요.♥