스프링 입문

스프링 입문 5.3 AOP

코딩펭귄 2024. 1. 8. 02:25

AOP Aspect Oriented Programming

관점지향 프로그래밍

- 스프링 어플리케이션은 특별한경우를 제외하고는 대부분 MVC 웹 어플리케이션에서 web layer, business layer, data layer로 정의

1) web layer : REST API를 제공하며, Clienet 중심의 로직 제공(ex.response 내려주거나 Http statur 바꿔주는 역할)

2) business layer : 내부정책에 따른 logic를 개발하며, 주로 해당 부분을 개발

3) data layer : 데이터베이스 및 외부와의 연동 처리

 

- 횡단관심

이미지출처 : 패스트캠퍼스 한번에끝내는 자바/스프링 패키지

 

- AOP : 기능 중복되는 메소드들, 특정 구역에 반복되는 로직들을 한곳에 몰아서 코딩할수있게 해줌 (스프링 어플리케이션의 특징)

 

- 주요 Annotation (AOP를 사용하고 싶은 클래스에 붙임)

@Aspect 자바에서 널리 사용하는 AOP 프레임워크에 포함됨,
AOP를 정의하는 Class에 할당
@Pointcut 기능을 어디에 적용시킬지(메소드/어노테이션) 등
AOP를 적용시킬 지점설정
@Before 메소드 실행 이전
@After 메소드 실행 후 예외가 발생되더라도 실행
@AfterReturing 메소드 호출 성공 실행시(Not throws)
@AfterThrowing 메소드 호출 실패 예외 발생(Throws)
@Around Before / After 모두 제어,
예외가 발생하더라도 실행할수있는 메소드에 지정