관리 메뉴

여름 언덕에서 배운 것

[스프링입문]섹션7 - AOP 본문

가랑비에 옷 젖는 줄 모른다 💻/스프링

[스프링입문]섹션7 - AOP

잔뜩 2023. 10. 5. 01:43

모든 메서드의 호출 시간을 측정하고 싶다면?   AOP

 

근데 모든 메서드마다 이렇게 하기 힘들기도 하고

핵심기능은 try에 있는 로직(핵심관심사항)이지 finally에 시간측정이 아니다.

시간을 측정하는 로직은 공통의 로직입니다. 이런걸 공통관심사항이라고 합니다.

 

두개가 섞여 있으면 유지보수가 힘듭니다 ㅠㅠ

 

AOP적용

스프링빈에 등록하기 위해서 Component 애노테이션을 달아도 되지만

SpringConfig에서 Bean 직접 등록하는 것도 방법입니다. 우리는 컴포넌트 스캔을 달도록 합시다

 

그러면 이제 멤버서비스에서 구현했던 time 관련된 로직들 다 지워도 된다~

 

서비스만 해도 되고

 

하위 디렉토리 다 해도 되고!!

AOP 적용 후 달라진게 뭐냐면 프록시 라는 가짜 스프링빈를 앞세운다.

진짜가 아닌 프록시라는 기술에 대한 가짜 서비스를 호출하는데 나중에 제대로 배웁시다.

 

네트워크 프록시는 클라이언트와 서버 간의 중간 역할을 하는 서버입니다. 클라이언트는 요청을 직접 서버에 보내지 않고 프록시 서버에 보냅니다. 그런 다음 프록시 서버는 이 요청을 서버에 전달하고, 서버의 응답을 받아 클라이언트에게 전달합니다.

 

스프링CGLIB 보면 AOP 썼다는걸 알 수있다. 조작(?) 한거다......??

 

728x90