Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 코딩공부
- 개발자 취업
- GIT
- CS
- ArrayList
- Grafana
- 코딩문제
- 정렬 알고리즘(sort algorithm)
- Entity
- 자료구조
- 배열
- 항해99
- Til
- HTML
- Java
- 자바
- 코딩테스트 준비
- github
- 메서드
- css
- Spring
- 이진 탐색(binary search)
- 프로그래머스
- 코딩
- 회고
- 면접(java
- wil
- 99클럽
- cs 공부)준비
- aop
Archives
- Today
- Total
hayu's 개발 일지
[TIL]240429 AOP 본문
AOP
- Spring AOP는 스프링 프레임워크에서 제공하는 기능 중 하나로 관점 지향 프로그래밍을 지원하는 기술이다.
- AOP는 로깅, 보안, 트랜잭션 관리 등과 같은 공통적인 관심사를 모듈화하여 코드 중복을 줄이고 유지 보수설을 향상하는데 도움을 준다.
관점 지향 프로그래밍(Aspect-Oriented Programming, AOP) 이란?
- 객체 지향 프로그래밍 패러다임을 보완하는 기술로 메서드나 객체의 기능을 핵심 관심사(Core Concern)와 공통 관심사(Cross-cutting-Concern)로 나누어 프로그래밍하는 것을 말한다.
- 핵심 관심사를 각 객체가 가져야 할 본래의 기능이며, 공통 관심사는 여러 객체에서 공통적으로 사용되는 코드를 말한다.
관점 지향 프로그래밍의 정의는 핵심 관심사와 공통 관심사를 분리하여 프로그래밍하는 것을 의미한다.
- 3개의 클래스가 있다고 가정하면 각각의 클래스에 있는 색 블록은 동일하게 사용되는 코드를 의미한다.
- 한 클래스에서 코드를 수정하게 되면 다른 클래스에서도 수정해야한다. 그래서 공통 코드를 묶어서, 모듈화를 시킨다. → 코드의 재사용성과 유지보수성을 강화한다.
⇒ 관점 지향 프로그래밍에서는 소스코드에서 반복적으로 사용하는 코드를 하나로 묶어서 모듈화하여 재사용성과 유지보수성을 높일 수 있는 강점을 가진다.
AOP 주요 용어
Aspect | - 공통적인 기능들을 모듈화 한것을 의미한다. |
Target | - Aspect가 적용될 대상을 의미하며 메소드, 클래스 등이 이에 해당 된다. |
Join point | - Aspect가 적용될 수 있는 시점을 의미하며 메소드 실행 전, 후 등이 될 수 있다. |
Advice | - Aspect의 기능을 정의한 것으로 메서드의 실행 전, 후, 예외 처리 발생 시 실행되는 코드를 의미한다. |
Point cut | - Advice를 적용할 메소드의 범위를 지정하는 것을 의미한다. |
AOP 주요 애너테이션
@Aspect | 해당 클래스를 Aspect로 사용하겠다는 것을 명시한다. |
@Before | 대상 “메서드”가 실행되기 전에 Advice를 실행한다. |
@AfterReturning | 대상 “메서드”가 정상적으로 실행되고 반환된 후에 Advice를 실행한다. |
@AfterThrowing | 대상 “메서드에서 예외가 발생”했을 때 Advice를 실행한다. |
@After | 대상 “메서드”가 실행된 후에 Advice를 실행한다. |
@Around | 대상 “메서드” 실행 전, 후 또는 예외 발생 시에 Advice를 실행한다. |
참고 자료
- https://adjh54.tistory.com/133
- https://engkimbs.tistory.com/entry/%EC%8A%A4%ED%94%84%EB%A7%81AOP
'프레임워크 > spring' 카테고리의 다른 글
[TIL]240501 DTO (0) | 2024.05.01 |
---|---|
[TIL]240430 즉시로딩 & 지연로딩 (0) | 2024.04.30 |
[TIL]240425 Grafana 그라파나 공유 대시보드 사용하기 (0) | 2024.04.25 |
[TIL]240423 그라파나와 프로메테우스 연동 (0) | 2024.04.23 |
[TIL]240422 Grafana 그라파나 설치 (0) | 2024.04.22 |