Spring

[Spring] 스프링 AOP 개념, 실행 과정(프록시 생성, 의존관계 변경)

권락현 2022. 1. 20. 23:17


AOP

  • Aspect Oriented Programming
  • 공통 관심 사항(cross-cutting concern)과 핵심 관심 사항(core concern)의 분리
  • 공통 관심 사항을 따로 두고 원하는 곳에 마음대로 적용시키는 것
  • 예) 메서드 시간 측정을 하고 싶을 때, 메서드에 일일이 시간 측정 코드를 다 작성하는 것이 아닌 따로 하나 만들어 두고 원하는 곳에 적용할 수 있도록 해주는 기술

 

 

  • @Aspect로 AOP 사용
  • @Component로 스프링 컨테이너에 등록
  • @Around로 적용시킬 범위를 설정

 

AOP에 의한 프록시 생성과 의존 관계 변경

기존 의존관계

  • 실제 컨트롤러 -> 실제 서비스 -> 실제 리포지토리


AOP로 인해 프록시가 생성되어 변경된 의존관계

  • 프록시 컨트롤러 -> 실제 컨트롤러 -> 프록시 서비스 -> 실제 서비스 -> 프록시 리포지토리 -> 실제 리포지토리

 

 

스프링에서 AOP 적용 -> 스프링 컨테이너에서 조작된 가짜 프록시를 생성 -> 컨트롤러가 가짜 프록시를 실행(이때 AOP가 다 실행됨) -> 프록시 완료 후 진짜를 호출

 


이곳에 작성한 내용은 인프런에서 서비스하는 강의 중 김영한님의 스프링 강의를 정리하고 저의 언어로 기억하고 싶은 것을 정리한 내용입니다. 아래에 출처를 남겨두겠습니다.

 

https://www.inflearn.com/roadmaps/373

 

[초급~중급] 우아한형제들 기술이사 김영한의 스프링 완전 정복 - 인프런 | 로드맵

대세를 따르세요! 자바 스프링 베스트셀러 우형 최연소 기술이사에게 배우는 스프링 완전 정복 🚩 [사진] 오픈 3개월 만에 수강생 7000+명의 극찬 릴레이 ✨원리와 실무를 한방에, 김영한의 스프

www.inflearn.com