반응형
AOP에 대하여
- 인프라 로직 (모든 서비스에 로그를 찍는 함수를 만들어라 (서비스 메서드:1203342개))
- 애플리케이션의 전 전영역에서 나타날 수 있음
- 중복코드를 만들어낼 가능성 때문에 유지보수가 힘들어짐
- 비즈니스 로직과 함께 있으면 비즈니스 로직을 이해하기 어려워짐(코드가 복잡해짐)
AOP | 설명 |
![]() |
* 로그인 기능, 글 작성 기능, 글 삭제 기능 |
![]() |
횡단 관심사 (cores-cutting concern) 중복이 되는 인프라 로직은 횡단으로 나타난다. (중복코드) |
- Aspect-Oriented Programming (OOP랑 대치되는 개념 아니라 보완하는 개념임)
AOP 시작하기
![]() |
AOP를 사용하기 위해서는 다음과 같은 Annotation들을 알아야 한다. |
참고 | https://programforlife.tistory.com/107 |
![]() |
- UselessAdvice @Aspect 어노테이션 @Component 어노테이션 - stopWatch 기능(중복코드 발생여지가 있는 인프라 로직) @Around("excution(*org.aaa.aaa.AuthServiceImple) @Around : advice execution.. : point cut : 어떤 메서드에 적용 할 것인지.? |
![]() |
중간에 프록시를 이용해서 갈아끼우는 기념? |
Spring AOP 사용(supported by @AspectJ)
- Target
- 어떤 대상에 부가 기능을 부여할 것인가?
- Advice
- 어떤 부가 기능? Before, AfterReturng, AfterThrowing, After, Around
- Join Point
- 어디에 적용할 것인가? 메서드, 필드, 객체, 생성자 등
- Point cut
- 실제 advice가 적용될 지점, Spring AOP에서는 advice가 적용될 메서드를 선정
AOP의 구현 방법 (적용 시점)
- 컴파일 시
- J.java - > J.class
- 클래스 로드 시
- J.class
- 프록시 패턴
- 패턴 방법(Ioc, DI)이용
Spring AOP와 AspectJ
![]() |
참고
https://calgaryhomeless.tistory.com/6
(개념) Spring AOP를 구현하는 Proxy Pattern
스프링이 제공해주는 제일 큰 기능으로는 IoC, AOP, PSA가 있다. 이중 AOP는 Aspect Oriented Programming의 줄임말이라고 하는데 강의를 들어보니 Aspect가 핵심이다. Aspect는 관점이라는 뜻이 있는데 나는..
calgaryhomeless.tistory.com
https://www.youtube.com/watch?v=Hm0w_9ngDpM
반응형
'Spring > [인프런] Spring FrameWork' 카테고리의 다른 글
DI(Dependency injection) (0) | 2022.01.24 |
---|---|
Spring 커넥션풀(c3p0) (0) | 2022.01.09 |
Spring JDBC 연동 & JDBC Template (0) | 2022.01.08 |
리다이렉트, 인터셉트 (0) | 2022.01.06 |
세션, 쿠키 (0) | 2022.01.03 |