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 모두
'Languege > Java & Spring' 카테고리의 다른 글
[김영한 스프링] 스프링 핵심 원리 이해 (0) | 2022.03.08 |
---|---|
[JAVA] 자바 Static (0) | 2022.03.05 |
좋은 객체 지향 설계의 5가지 원칙 (SOLID 원칙) (0) | 2022.03.01 |
좋은 객체 지향 프로그래밍 (0) | 2022.02.28 |