1. AOP
가. Aspect Oriented Programming
1) 관점 지향 프로그래밍
2) 객체 지향 프로그래밍의 뒤를 잇는 프로그래밍 언어 구조
3) aspect를 기준으로 작업
나. aspect 지향과 횡단 관점 분리
1) separation of Cross=Cuttin Concern
2) 전체 만들어햐 하는 기능들을 2가지로 나눔
가) 핵심 업무(Core concern)
(1) 은행업무
(가) 계좌 이체
(나) 이자 계싼
(다) 대출 처리
나) 공통 업무(Cross-cutting concern)
(1) 은행 업무
(가)기록
(나) 보안
(다) 트랜잭션
다) 위빙
(1) 핵심 업무 중간에 동적으로 aop 프레임 워크에서 공통 업무를 끼워줌
2. AOP 용어
가. JoinPoint
1) 클래스 인스턴스 생성시점, 메소드 호출 시점, 예외 발생 시점
2) 어플리케이션 실행시 특정 작업 시작 시점
3) 시간 : when
나. pointcut
1) joinpoint 중에서 몇 가지를 묶어 놓은 것
2) 다른 업무 중에 똑같은 공통 업무가 필요할 때 사용
다. Advice
1) joinpoint에 삽입되어져 동작할 수 있는 코드
라. advisor(안씀)
마. weaving
1) advice를 끼워 넣는 것을 말한다.
2) 핵심 로직 코드에 삽입하는 것
바. target
1) 핵심 로직을 구현하는 클래스를 말함
2) 핵심 업무가 들어있는 객체
사. aspect
1) 여러 객체에 공통으로 적용되는 공통 관점 사항을 말함
2) advice 들을 가지고 있는 클래스
3) 삽입은 spring framework가 작성을 해줌
3. 스프링 aop에서의 용어
가. 프로그램 실행 순서는 순서적으로
나. joinpoint에서 pointcut으로 grouping을 통해 advice를 생성
다. Aspect weaving 되는 시점
1)aspect 객체 -> weaving 되는 시점
2) compile time
target + aspect compile = class
3) loading time
target + aspect compile = class 각자 자기 내용만 가지고 있음
loading 시점에서 class를 한 개 생성( 두 내용을 섞어서 생성)
4) runtime(important)
target+aspect compile = class 각자 자기 내용만가지고 있음
loading을 한 뒤에도 불구하고 각자 정보를 가지게 됨
client는 target만 보고 호출(proxy 사용)
clinet가 호출하면 proxy부터 거쳐감
aspect를 먼저 실행하여 client에게 보내고 정보를 받아옴
spirng에서 현재 지원하는 방식
4. AOP 기술을 이끄는 것
가. AspectJ
1) Original AOP 기술(1995년 1VERSION)
2) Full blown : aop에서 제공하는 모든 기능을 사용이 가능
3) spring 에서 추가를 했을 때 지원
나. Spring AOP
1) java-base aop framework
2) spring 내장
3) enterprise 문제 해결을 위해 사용
다. pointcut
1) example
'Tools > Spring Framework' 카테고리의 다른 글
토비의 스프링 3.1. 들어가며 (0) | 2016.03.06 |
---|---|
Spring jdbc (0) | 2016.01.28 |
Spring (0) | 2016.01.26 |