728x90
반응형
1. AOP에 대하여
서비스에서 필요한 내용은 비즈니스 로직이라고 불리는 핵심 기능만 수행할 수 있으면 된다.
그 외에 시간을 재거나 권한을 체크하거나 트랜잭션을 거는 것은 모두 일종의 인프라 로직이다.
인프라 로직
- 부가기능이기 때문에 애플리케이션의 전 영역에서 나타날 수 있음.
- 중복코드를 만들어낼 가능성 때문에 유지보수가 힘들어짐(ex) 1억개의 메서드에 스탑워치 기능 추가하는 것))
- 비즈니스 로직과 함께 있으면 비즈니스 로직을 이해하기 어려워짐.
- 로깅, 트랜잭션, 권한 검사, 성능 측정
AOP(Aspect-Oriented Programming) 용어
- Tartget
- 어떤 대상에 부가 기능을 부여할 것인가
- Advice
- 어떤 부가 기능? Before, AfterReturning, AfterThrowing, After, Around
- Join point
- 어디에 적용할 것인가? 메서드, 필드, 객체, 생성자 등
- Point cout
- 실제 advice가 적용될 지점, Spring AOP에서는 advice가 적용될 메서드를 선정
2. Spring AOP 사용(supported by @AspectJ)
AOP의 구현 방법
- 컴파일
- J.java라는 클래스를 j.class라는 파일로 컴파일하는 시점에 해당하는 aspect들을 끼워넣어 AOP 적용.
- 클래스 로드시
- J.class라는 파일까지 컴파일되는 것까지는 괜찮은데 이걸 이제 클래스 로더가 메모리상에 올릴 때에 AOP 적용.
- 프록시 패턴
- 스프링 AOP에서 사용하는게 프록시 패턴이다.
- J라는 타겟 클래스를 프록시로 감싸서 부가 기능을 제공하는 프록시로 감싸서 실행하는 방식
- IoC와 Di를 기반으로 하기 때문에 가능한 방식이다.
728x90
반응형
'영상 후기 > Spring Boot' 카테고리의 다른 글
영상 후기 - [10분 테코톡] 오찌, 야호의 DI와 IoC (0) | 2023.04.27 |
---|---|
영상 후기 - [10분 테코톡] ⏰ 아마찌의 ORM vs SQL Mapper vs JDBC (0) | 2023.04.01 |
영상 후기 - [10분 테코톡] 수달의 JPA N+1 문제 (0) | 2023.03.31 |
영상 후기 - [10분 테코톡] 루나의 Gradle (0) | 2023.03.17 |
영상 후기 - [10분 테코톡] 🐝범블비의 MVC Pattern (0) | 2023.03.17 |