멋사 Backend 47일차 🦁

신재원·2023년 6월 27일

🙆‍♂️ Spring

AOP

  • 이전 블로그의 @Validation 처럼 신입 백엔드 개발자로 알고있으면 좋지만, 필수적인 것은 아닙니다.

AOP 란?

관점 프로그래밍의 약자입니다.

  • 여기서 관점 프로그래밍의 이란 ?
    프로그래밍 로직에서 로깅, 보안 등 공통적인 로직이 존재할수 있습니다.
    이러한 공통적인 로직을 "횡단 관심사" 라고 합니다.
  • 공통적인 로직을 극복하기위해 AOP라는 해결책이 있습니다.

➡ AOP의 장점 : 공통적인 소스코드를 한곳에서 관리할수있습니다.

AOP 용어

  • Advice : 조인포인트에서 실행되는 코드를 말합니다. (로그 출력, 트랜잭션)
  • Join Points : 어드바이스가 실행하는 동작을 끼워 넣을수 있을때를 말합니다.
  • Pointcut : 어드바이스가 실행되는 하나 이상의 조인 포인트를 선택하는 표현식입니다.
    (표현식이나 패턴을 사용하여 포인트컷을 정의할 수 있음)

AOP 사용

  • AOP는 Spring.io 에서 지원하지 않으므로, 아래의 코드를 의존성 추가를 해줍니다.
dependencies {
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-aop'
}
  • @Aspect : 흩어진 관심사를 모듈화 하는것입니다.
    (@Component : 빈 등록)
  • 로그라는 공통로직을 처리합니다.
  • @Before : 어드바이스 타겟 메소드가 실행되기 이전에 value 위치 (Controller)를 실행합니다.

➡ 흩어진 관심사를 Aspect로 모듈화하고 공통된 비즈니스 로직을 분리하여 재사용하겠다는 것이 AOP의 목적입니다.

Reference

AOP 참조

0개의 댓글