[개인공부][Spring]-AOP

Mini_me·2021년 12월 30일
0

공부 [Spring]

목록 보기
5/27

AOP

AOP ?

AOP란 관점 지향 프로그래밍이다.

  • OOP를 보완하는 구조
  • OOP에서는 '클래스' 단위로 모듈화 / AOP 에서는 '관점'으로 모듈화
  • 흩어진 Aspect를 모듈화 할 수 있는 프로그래밍 기법
  • 특정한 함수 호출 전이나 후에 공통적으로 처리해줘야할 때 활용
  • 공통적인 기능과 핵심 기능을 구현 분리하는 것이 핵심이다.
  • Aspect안에 Concerns ( 여러 클래스 또는 여러 메소드에 나타나는 비슷한 코드들 )를 정의 / 어디에 적용시킬지 명시

AOP의 기본 개념들

1. Aspect : 흩어진 관심(Crosscuttin Concerns)을 묶어서 모듈화한것

Advice와 Point Cut이 들어간다.
가장 많이 활용되는 부분은 Transaction 기능

2.Advice

AOP가 동작하면서 실제로 적용되는 기능 ( 로깅, 트랜잭션, 인증) 을 뜻한다.
해야할 일들에 대한 정보를 가지고 있다.

3. Join point

Aspect를 넣어줄 수 있는 특정 포인트 ( 연결 가능한 지점 )
가장 흔한 Join Point는 메서드 실행 시점이다.

4. Target Object

Advice가 적용될 대상 오브젝트 예)A,B,C 클래스

5. Point Cut

실제 Advice가 적용될 지점
예 ) A클래스의 B메소드에 적용 : target-A클래스 / PointCut-B클래스

5. AOP Proxy

특정 클래스에 AOP을 입혀줄때 해당 클래스의 AOP를 겉에 한번더 씌워주는 클래스를 말한다.

6. Weaving

Advice를 비즈니스 로직 코드에 삽입하는 것

0개의 댓글