[김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술] AOP - 'AOP가 필요한 상황' 수강
This commit is contained in:
@@ -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)
|
||||
21
SpringBoot-Introduction/Lectures/Lecture24.md
Normal file
21
SpringBoot-Introduction/Lectures/Lecture24.md
Normal file
@@ -0,0 +1,21 @@
|
||||
# AOP가 필요한 상황
|
||||
- 만약 모든 메소드의 호출 시간을 측정하고 싶다면?
|
||||
- `공통 관심 사항(cross-cutting concern)` vs `핵심 관심 사항(core concern)`
|
||||
- 회원 가입 시간, 회원 조회 시간을 측정하고 싶다면?
|
||||
- 즉, `공통 관심 사항`과 `핵심 관심 사항`을 분리해서 적용하고 싶을 때 사용한다.
|
||||
|
||||
---
|
||||
|
||||
## 추가설명
|
||||
- 실제 운영에서는 처음에 서버를 올리고 이것저것 호출하는 `warmUp`이라는 것을 한다.
|
||||
|
||||
---
|
||||
|
||||
## 문제
|
||||
- 회원가입, 회원 조회에 시간을 측정하는 기능은 `핵심 관심 사항(핵심 비즈니스 로직)`이 아니다.
|
||||
- 시간을 측정하는 로직은 `공통 관심 사항(공통 비즈니스 로직)`이다.
|
||||
- 시간을 측정하는 로직과 `핵심 비즈니스의 로직`이 섞여서 유지보수가 어렵다.
|
||||
- 시간을 측정하는 로직을 별도의 공통 로직으로 만들기 매우 어렵다.
|
||||
- 시간을 측정하는 로직을 변경할 때 모든 로직을 찾아가면서 변경해야 한다.
|
||||
|
||||
---
|
||||
Reference in New Issue
Block a user