'pointcut'에 해당되는 글 1건

  1. 2017.04.01 Spring 의 AOP (초간단 개념 정리)

요약

비지니스 로직은 정해진 목적에 따라 일련의 일을 처리하는 과정을 설명한다고 하겠다.


목적 달성은 주 관심사다.


만약 목적에 따른 수행 외에도 소요시간이 알고 싶다면?

이것은 관심사다.


주 관심사와 부 관심사는 두 가지의 다른 측면인 것이다.


AOP : Aspect Oriented Programming은 이런 여러 다른 측면을 따로 분리하여 각각에 맞게 집중적으로 프로그래밍 한다는 기법인 것이다.


적어도, 이것이 필자가, 수 많은 시간을 인터넷 검색으로 투자하고 얻어낸 결론이다.



용어설명

Aspect : 

  • 언어적 정의에는 측면이라는 뜻이 있다.
  • AOP안에서는 횡단 관심사(Crosscutting Concern)를 의미. 이것은 다른 관심사에 영향을 미치기 때문이다. (REF: 위키피디아)
  • Spring에서는 @Aspect 로 표기하고 Class로 정의 한다.

Joinpoint :

  • 언제/어느곳에서 만나는가를 의미.
  • 대상 시점/지점을 말함. 일정 기준으로 여러 joinpoint를 합쳐 놓은 것을 pointcut이라 부른다. (REF: 위키피디아 )
  • 일반적으로는, 주 관심사를 두고 그 전, 후 또는 전후 모두가 지정될 수 있다. 이에 따라 부 관심사의 실행코드인 advice가 분류된다.
  • Spring에서는 빈의 메소드가 대상 단위.

Pointcut :

  • joinpoint를 정의.
  • Spring 에서는 메소드의 실행점을 정의. (빈의 메소드가 대상 단위이기 때문임)
    • 표현식에서 보이는 범위 지정 방식과 혼돈하면 안된다.

Advice :

  • 부 관심사로 분류됨.
  • Spring에서는 Annotation으로 실행시점을 정의. 이 정의로 타입을 분류함.
    • Before
    • After returning --> 정상 반환
    • After throwing --> 예외 발생
    • After (finally)
    • Around

마무리

장황하고 자세하게 설명하기 위해선 여러 다른 개념도 설명해야 겠지만, 이 글은 최소한의 정의를 목적으로 하였기에 여기서 마무리한다.

 



'Java > 환경 & 기술' 카테고리의 다른 글

Image 다루기 (크기조정, scaling)  (0) 2017.01.08
String과 .getBytes()  (0) 2017.01.05
.getRealPath() 에서 주의 사항  (0) 2017.01.05
System Properties (System.getProperty)  (0) 2017.01.04
개발 중 난항 극복 방법  (0) 2016.12.07
Posted by 후니코드
이전버튼 1 이전버튼

블로그 이미지
개념적으로는 컴퓨터 프로그래밍을, 우선적으로는 Java와 관련하여 기본 사항을 소개.
후니코드

공지사항

Yesterday
Today
Total

달력

 « |  » 2025.6
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함