본문 바로가기
개발자 일지/Spring

[자바, 스프링]인프런 김영한 로드맵1, 스프링 입문 강의 정리4

by 네빌링 2022. 1. 10.
반응형

-인프런 김영한 강사님의 스프링 입문 강의 핵심 위주로 정리한다.

-모든 소스는 깃허브에서 관리한다.(https://github.com/coderahn/Spring-Lecture1)

-이전 글은 아래 링크를 참고해주세요.

 

 

[자바, 스프링]인프런 김영한 로드맵1, 스프링 입문 강의 정리3

-인프런 김영한 강사님의 스프링 입문 강의 핵심 위주로 정리한다.-모든 소스는 깃허브에서 관리한다.(https://github.com/coderahn/Spring-Lecture1)-이전 글은 아래 링크를 참고해주세요.  [자바, 스프링]

roadofdevelopment.tistory.com

 


8.AOP

 

1)AOP가 필요한 상황

지금까지 만든 서비스들(회원가입, 회원조회 등)의 동작 시간 측정 로직을 서비스 메소드마다 달아야 하는 경우 유지보수가 힘들 것이다. 이를 위해 AOP라는 기술이 필요하다.

 

시간 측정 기술과 같은 부수적인 기능을 공통관심사항이라고 하고 서비스 자체의 핵심 기능을 핵심관심사항이라고 한다.

 

스프링이 제공하는 AOP 기술을 사용하면 공통적으로 사용되는 공통관심사항을 쉽게 관리할 수 있다. 

 

2)AOP 적용

AOP를 사용하면 위에서 언급한 시간측정 로직을 한 곳에 모아 원하는 곳에 적용할 수 있다. 아래와 같이 aop패키지에 AOP 클래스를 만든다.

 

 

@Aspect, @Component 어노테이션을 통해 스프링 빈으로 등록하고 AOP기술을 사용한다. @Around는 어느 시점에 적용할지에 대해 패턴으로 정의하는 어노테이션이다. joinPoint는 실제 핵심관심사항 메소드가 동작하는 부분이다.

 

결과적으로 위와 같이 AOP기술을 사용하면 핵심관심사항과 공통관심사항을 분리할 수 있고, 공통관심사항 수정 요청이 들어왔을 때 위의 AOP 컴포넌트만 수정해주면 된다.

 

AOP는 내부적으로 프록시가 사용된다. 아래의 그림을 참고하자.

 

인프런 김영한님 강의 자료 참고 그림 - 프록시 패턴이 적용된 AOP

 

반응형