BLOG main image
분류 전체보기 (313)
교육 (13)
NEIS (6)
Edufine (0)
Programmer (5)
Android Programming (1)
Internet W3 (18)
JAVA Programming (9)
JSP/Servlet (1)
Framework (7)
Spring For Beginner (4)
eGovFrame (10)
MEAN Stack (2)
NodeJS (5)
SublimeText (30)
SublimeText_Tips (18)
Eclipse (16)
JavaScript (8)
jQuery (12)
jQuery_tips (1)
Ajax (3)
DWR(Direct Web Remote) (4)
JSON(JS Object Notation) (4)
Oracle (2)
MySQL (28)
OS (16)
Download (3)
Life (10)
Favorit Site (1)
Books (2)
Healthy (1)
Stocks (1)
HTML5/CSS (1)
Python (4)
Security (7)
CISSP (0)
Ruby On Rails (5)
일기장 (0)
영어 교과서(중2) (3)
알고리즘 (0)
Go Lang (3)
VB 2010 (12)
C# (1)
정보보안기사(네트워크보안) (0)
업무 활용 엑셀 (11)
틈틈이 활용팁 (14)
하루 하루 살아가며 ……. (2)
기술 (1)
파이썬 & 데이터분석 (1)
Visitors up to today!
Today hit, Yesterday hit
daisy rss
tistory 티스토리 가입하기!
2015. 7. 19. 20:11

** OOP vs. AOP

- OOP와 AOP는 대립되는 관계 아니다. OOP를 좀 더 OOP 답게 만들기 위해 AOP 개념 생겼다.

- 우찌됐든 둘 다 중복되는 코드를 줄여보자 하는 내용

 

** AOP (Aspect Oriented Program)

- 관점지향프로그램

- 설계할 때 business logic만 예쁘게 뽑아 놨는데.. (아래 그림)

 

  - 코딩하다 보니까 자꾸 비슷한 코드들이 따라 붙더라...

- 그래서 그런 놈들을 별도의 클레스로 뽑아내고 보니,

- 코드가 더 더럽더라..

- 그런데다 커플링도 밀접하게 달라 붙더라 (유지보수 떨어져!!!)

 

- 그래서 생긴게 weaving!!! => business logic과 나머지 떨궈내자!!

** join Point

  - 종단관점에 횡단관점을 적용시킬 후보군 -> 뭔소리? business logic중 따라붙는 코드 어디에 끼워 '넣을 수 있는' 건데? 라는 것

  - AspectJ : 클레스 생성됐을 때 distroy 시킬 때 등등 많은 join point 제공한다.

  - SpringAOP : method단위 join point만 제공한다

    method 호출시점

    method return 시점

    method에서 Exceptino throw됐을 때

    method가 invocation 됐을 때

  - 위 join point가 너무 적지 않냐라는 질문에 spring 진영은 저거 말고 자주쓰는거 뭔데? 라고 반문

** pointcut

  - 많은 join point 중에 '어디에' 찍을껀데? 하는 것

** Advice

  - pointcut에 적용할 횡단관점이 '무엇' 적용할 껀지

** Advisor & Aspect

  - point cut + advice를 결합한 것 말한다.

  - 결국 Aspect 적용한다는 것은 business logic '어디'에 따라붙은 코드 '무엇'을 적용할 지 지정하는 것

** SpringAOP의 history

  - 1.0 버전에서는 IOC에 열심히 했다면, 2.0 버전에서는 AOP를 열심히

  - 1.0 버전에서는 java 1.3부터 있는 Replect 에 있는 개념 그대로 만들었었다. (아래 그림)

  - 그래서 용어도 target, intercepter, interface 그대로 썼음

  - 근데 2.0에서는 AspectJ에 있는 개념 많이 얻어왔다.

  - 그래서 용어도 aspect, point cut, advice 등의 용어 사용한다.

 
 

 

반응형