티스토리 뷰
# AOP(Aspect Oriented Programming)
AOP는 문제를 바라보는 관점을 기준으로 프로래밍하는 기법을 의미한다.
문제를 해결하기 위한 핵심 관심 사항과 전체에 적용되는 공통 관심 사항을 기준으로 프로그래밍함으로써 공통모듈을 여러 코드에 쉽게 적용할 수 있도록 한다
- 공통 관심 사항 : 공통 기능으로 어플리케이션 전반에 걸쳐 필요한 기능
- 핵심 관심 사항 : 핵심 로직, 핵심 비즈니스 로직
# 용어
- Joinpoint : Advice를 적용 가능한 지점을 의미한다. 메서드 호출, 필드 값 변경 등이 이에 해당한다.
- Advice : Joinpoint의 부분 집합으로서 실제로 Advice가 적용되는 조인포인트를 나타낸다.
- Pointcut : 언제 공통 관심 기능을 핵심 로직에 적용할 지를 정의하고 있다.
- Weaving : Advice를 핵심 로직 코드에 적용하는 것을 말한다.
- Aspect : 여러 객체에 공통으로 적용하는 기능을 말한다.
# Advice의 종류
Before Advice : 대상 객체의 메서드 호출 전에 공통 기능을 실행한다.
After Returning Advice : 대상 객체의 메서드가 익셉션 없이 실행된 이후에 공통 기능을 실행한다.
After Throwing Advice : 대상 객체의 메서드를 실행하는 도중 익셉션이 발생한 경우에 공통 기능을 실행한다.
After Advice : 대상 객체의 메서드를 실행하는 도중에 익셉션이 발생했는지의 여부에 상관없이 메서드 실행 후 공통 기능을 실행한다.
Around Advice : 대상 객체의 메서드 실행 전, 후 또는 익셉션 발생 시점에 공통 기능을 실행하는데 사용된다.
'Programming > Java' 카테고리의 다른 글
[Spring] How to get list objects in AWS S3 bucket (0) | 2019.01.12 |
---|---|
[Java] Collections.sort()를 이용한 List 정렬 (0) | 2018.12.30 |
[Spring] Reading S3 text file as a string (0) | 2018.12.19 |
[Spring] Uploading String to Amazon S3 (1) | 2018.12.12 |
[Spring] 응답보안헤더 (0) | 2018.10.25 |