[Spring] AOP

2024. 3. 10. 17:38Backend/Spring

📝 [코드로 배우는 스프링 웹 프로젝트(개정판)]을 공부하며 배운 것들을 기록한 내용입니다. 자세한 내용은 해당 도서를 참고해주세요~!

 

 

AOP(Aspect Oriented Programming) : 관점 지향 프로그래밍

 

핵심 로직이 아니지만 공통의 관심사를 따로 분리하고, 관심사를 구현한 코드를 컴파일 또는 실행 시점에 결합하는 것을 말합니다. 부가 기능들을 한 곳에서 관리할 수 있게 합니다. AOP를 사용하는 목적은 개발자가 핵심 비즈니스 로직에 집중할 수 있도록 하기 위함입니다!

 

 

About AOP

 

1. Proxy, Target, JoinPoint

 

- Proxy는 Target을 감싸고 있는 것을 말하며, Target은 핵심 비즈니스 로직을 이야기합니다. 

- JoinPoint는 Target이 가지고 있는 메서드입니다.

 

외부에서의 호출은 Proxy 객체를 통해서 Target 객체의 JoinPoint를 호출하는 방식

 

2.  Aspect, Advice

 

- Aspect는 관심사를 의미하며, Advice는 Aspect가 구현된 코드를 의미합니다.

- @Aspect

- @Before, @After, @AfterReturning, @AfterThrowing, @Aroud 

 

3. Pointcut

 

- Pointcout은 Advice를 어떤 JoinPoint에 결합할 것인지 결정하는 설정입니다.

 

 

References

1. 코드로 배우는 스프링 웹 프로젝트(개정판) - 구멍가게 코딩단, 남가람북스

2. 스프링 AOP

3. 김영한 스프링 입문