Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

forDevLife

스프링 입문 - 웹 개발 기초 <4> 본문

Spring

스프링 입문 - 웹 개발 기초 <4>

JH_Lucid 2021. 5. 24. 21:43

1. AOP가 필요한 상황

- 모든 메서드의 호출 시간 측정 필요한 상황

처음 테스트 시간은 좀 걸림(웜업?)
구현 로직

 

- 핵심 로직이 아님에도, 너무 귀찮게 하나하나 하기 어렵다.(메서드가 천개라면, 위에 시간 측정을 다 붙여야 함..)

- AOP가 필요한 시점임..


2. AOP 적용

- 관점 지향 프로그래밍

- 공통 / 핵심 사항 분리

- 시간 측정 로직을, 원하는 곳에 적용하기

 

Bean으로 등록해서, 아 이게 Aop로 등록되어있구나를 쉽게 확인할 수 있게 함. 

 

여기에서는, @Component로 해서 bean으로 등록했음

- 변경사항이 있으면, 이 로직만 변경하면 됨

- @Around를 통해, 원하는 적용 대상 선택 가능

service 패키지에만 적용한 예시

- 메서드 실행 시, TimeTraceAop가 한번 intercept하여 실행 후, 메서드 실행됨

 

 

1) AOP 적용 전 의존 관계

2) AOP 적용 후 의존관계

- 가짜 멤버서비스(프록시)를 만들어 내어, 앞에 세워 둠

- joinPoint.proceed()에서 실제 서비스가 실행 됨

- 앞에서 한번 필터를 거친다고 생각하자.

 

실제로 class를 찍어보면, 멤버 서비스를 가지고 복제를 해서 코드를 조작하는 기술인 무언가가 나옴.

 

3) AOP 적용 전 전체 그림

4) AOP 적용 후 전체 그림

- 프록시 방식을 통해, 앞에서 필터링을 한번 해준다고 이해하자.

Comments