관점 지향 프로그래밍

IT위키
김형교 (토론 | 기여)님의 2019년 12월 30일 (월) 19:06 판
AOP; Aspect Oriented Programming
객체를 핵심관심과 횡단관심으로 구분하여 처리하는 프로그래밍 기법

AOP의 핵심관심과 횡단관심.jpg

용어

용어 설명
Joinpoint
  • 메소드를 호출하는 '시점', 예외가 발생하는 '시점'과 같이 애플리케이션을 실행할 때 특정 작업이 실행되는 '시점'을 의미
Advice
  • Joinpoint에서 실행되어야 하는 코드
  • 횡단관점에 해당함 (트랜잭션/로그/보안/인증등..)
Target
  • 실질적인 비즈니스 로직을 구현하고 있는 코드
  • 핵심관점에 해당함 (업무로직)
Pointcut
  • Target 클래스와 Advice가 결합(Weaving)될 때 둘 사이의 결합규칙을 정의하는 것이다
  • 예로 Advice가 실행된 Target의 특정 메소드등을 지정
Aspect
  • Advice와 Pointcut을 합쳐서 하나의 Aspect라고 한다.
  • 즉 일정한 패턴을 가지는 클래스에 Advice를 적용하도록 지원할 수 있는 것을 Aspect라고 한다.
Weaving
  • AOP에서 Joinpoint들을 Advice로 감싸는 과정을 Weaving이라고 한다.
  • Weaving 하는 작업을 도와주는 것이 AOP 툴이 하는 역할이다