[김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술] AOP - 'AOP가 필요한 상황' 수강

This commit is contained in:
DESKTOP-QSP5N3H\배재홍
2020-12-25 00:15:52 +09:00
parent f767d1227c
commit d8db3463c5
3 changed files with 49 additions and 9 deletions

View File

@@ -33,4 +33,7 @@
- [스프링 통합 테스트](https://github.com/banjjoknim/TIL/blob/master/SpringBoot-Introduction/Lectures/Lecture20.md)
- [스프링 JdbcTemplate](https://github.com/banjjoknim/TIL/blob/master/SpringBoot-Introduction/Lectures/Lecture21.md)
- [JPA](https://github.com/banjjoknim/TIL/blob/master/SpringBoot-Introduction/Lectures/Lecture22.md)
- [스프링 데이터 JPA](https://github.com/banjjoknim/TIL/blob/master/SpringBoot-Introduction/Lectures/Lecture23.md)
- [스프링 데이터 JPA](https://github.com/banjjoknim/TIL/blob/master/SpringBoot-Introduction/Lectures/Lecture23.md)
## AOP
- [AOP가 필요한 상황](https://github.com/banjjoknim/TIL/blob/master/SpringBoot-Introduction/Lectures/Lecture24.md)

View File

@@ -0,0 +1,21 @@
# AOP가 필요한 상황
- 만약 모든 메소드의 호출 시간을 측정하고 싶다면?
- `공통 관심 사항(cross-cutting concern)` vs `핵심 관심 사항(core concern)`
- 회원 가입 시간, 회원 조회 시간을 측정하고 싶다면?
- 즉, `공통 관심 사항``핵심 관심 사항`을 분리해서 적용하고 싶을 때 사용한다.
---
## 추가설명
- 실제 운영에서는 처음에 서버를 올리고 이것저것 호출하는 `warmUp`이라는 것을 한다.
---
## 문제
- 회원가입, 회원 조회에 시간을 측정하는 기능은 `핵심 관심 사항(핵심 비즈니스 로직)`이 아니다.
- 시간을 측정하는 로직은 `공통 관심 사항(공통 비즈니스 로직)`이다.
- 시간을 측정하는 로직과 `핵심 비즈니스의 로직`이 섞여서 유지보수가 어렵다.
- 시간을 측정하는 로직을 별도의 공통 로직으로 만들기 매우 어렵다.
- 시간을 측정하는 로직을 변경할 때 모든 로직을 찾아가면서 변경해야 한다.
---