관점 지향 프로그래밍 편집하기
IT위키
편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.
최신판 | 당신의 편집 | ||
1번째 줄: | 1번째 줄: | ||
[[분류:소프트웨어 공학]] | [[분류:소프트웨어 공학]] | ||
;AOP; Aspect Oriented Programming | ;AOP; Aspect Oriented Programming | ||
;객체를 핵심관심과 횡단관심으로 구분하여 처리하는 프로그래밍 기법 | ;객체를 핵심관심과 횡단관심으로 구분하여 처리하는 프로그래밍 기법 | ||
6번째 줄: | 5번째 줄: | ||
[[파일:AOP의 핵심관심과 횡단관심.jpg]] | [[파일:AOP의 핵심관심과 횡단관심.jpg]] | ||
== 용어 == | |||
==용어== | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
!용어!!설명 | ! 용어 !! 설명 | ||
|- | |- | ||
|Joinpoint | | Joinpoint | ||
|| | || | ||
*메소드를 호출하는 '시점', 예외가 발생하는 '시점'과 같이 애플리케이션을 실행할 때 특정 작업이 실행되는 '시점'을 의미 | * 메소드를 호출하는 '시점', 예외가 발생하는 '시점'과 같이 애플리케이션을 실행할 때 특정 작업이 실행되는 '시점'을 의미 | ||
|- | |- | ||
|Advice | | Advice | ||
|| | || | ||
*Joinpoint에서 실행되어야 하는 코드 | * Joinpoint에서 실행되어야 하는 코드 | ||
*횡단관점에 해당함 (트랜잭션/로그/보안/인증등..) | * 횡단관점에 해당함 (트랜잭션/로그/보안/인증등..) | ||
|- | |- | ||
|Target | | Target | ||
|| | || | ||
*실질적인 비즈니스 로직을 구현하고 있는 코드 | * 실질적인 비즈니스 로직을 구현하고 있는 코드 | ||
*핵심관점에 해당함 (업무로직) | * 핵심관점에 해당함 (업무로직) | ||
|- | |- | ||
|Pointcut | | Pointcut | ||
|| | || | ||
*Target 클래스와 Advice가 결합(Weaving)될 때 둘 사이의 결합규칙을 정의하는 것이다 | * Target 클래스와 Advice가 결합(Weaving)될 때 둘 사이의 결합규칙을 정의하는 것이다 | ||
*예로 Advice가 실행된 Target의 특정 메소드등을 지정 | * 예로 Advice가 실행된 Target의 특정 메소드등을 지정 | ||
|- | |- | ||
|Aspect | | Aspect | ||
|| | || | ||
*Advice와 Pointcut을 합쳐서 하나의 Aspect라고 한다. | * Advice와 Pointcut을 합쳐서 하나의 Aspect라고 한다. | ||
*즉 일정한 패턴을 가지는 클래스에 Advice를 적용하도록 지원할 수 있는 것을 Aspect라고 한다. | * 즉 일정한 패턴을 가지는 클래스에 Advice를 적용하도록 지원할 수 있는 것을 Aspect라고 한다. | ||
|- | |- | ||
|Weaving | | Weaving | ||
|| | || | ||
*AOP에서 Joinpoint들을 Advice로 감싸는 과정을 Weaving이라고 한다. | * AOP에서 Joinpoint들을 Advice로 감싸는 과정을 Weaving이라고 한다. | ||
*Weaving 하는 작업을 도와주는 것이 AOP 툴이 하는 역할이다 | * Weaving 하는 작업을 도와주는 것이 AOP 툴이 하는 역할이다 | ||
|} | |} | ||