Languege/Java & Spring / / 2022. 2. 1. 23:34

AOP란?

Spring의 특징 중 하나인 AOP란 무엇일까요?

AOP는 Aspect Oriented Programming으로 관점지향 프로그램을 뜻합니다.

스프링 어플리케이션은 대부분 특별한 경우를 제외하고는

MVC 웹앱에서 Web Layer, Business Layer, Data Layer로 정의합니다.

 

-Web Layer : Rest API를 제공, Client 중심의 로직 적용

-Business Layer : 내부 정책에 따른 로직을 개발하며, 주로 해당 부분을 개발

-Data Layer : DB 및 외부와 연동을 처리


횡단 관심

A,B,C사에는 각각 기능1을 통하여 인코딩을 하여 보내고

B,C사에는 기능4를 통하여 암호화를 한다던지 등의

공통적이고 반복적인 기능(메소드,반복되는 로직)들을 한곳에 모아서 관리할 수 있게 합니다.


주요 Annotation

@Aspect : AOP를 정의하는 Class에 할당 ( 자바에서 널리 사용하는 AOP 프레임워크에 포함)

@Pointcut : 기능을 어디에 적용시킬지, 매소드나 Annotation 등 AOP를 적용 시킬 지점을 설정

@Before : 메소드 실행 전

@After : 메소드가 실행 후, 예외 발생하더라도 실행됨

@AfterReturing : 메소드 호출 성공 실행시 (Not Throws)

@AfterThorwing : 메소드 호출 실패 예외 발생(Throws)

@Around : Before / After 모두

 

 

 

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유