🥸 AOP 너는 뭐니?
OOP(Object Oriented Programming)는 객체지향 프로그램의 약자이다.
AOP는 Aspect Oriented Programming의 약자로, 관점지향 프로그램이다.
OOP와 AOP는 상반되는 개념이 아니고 OOP를 더욱 OOP스럽게 만들어주는 것이 AOP라고 한다!
수업 내용을 간단히 정리해보면
oop는 object 단위로 해서 프로그래밍 되는 거고,
aop는 어느 시점(바라보는 관점)에 따라서 프로그래밍 된다는 것이라고 한다.
java는 다중 상속이 불가능하여 다양한 모듈에 상속 기법을 통한 공통기능 부여에는 한계가 있다.
또한 기능 구현부분에 핵심 기능 코드와 공통기능 코드가 스파게티처럼 섞여 있어 효율성이 떨어진다.
이런 한계를 극복하기 위하여 등장한 것이 aop !
aop는 핵심 기능과 공통 기능을 분리시켜 놓고, 공통 기능을 필요로 하는 핵심 기능들에서 사용하는 방식이라고 한당
정리하자면, AOP는
핵심기능과 공통 기능을 나누는 것!
예를 들어 운동을 할 때 준비 운동, 물 마시기는 공통 기능이지만
달리기 운동애서는 뛰어야 하고 철봉 운동에서는 철봉을 잡아야 하는 핵심 기능이 다름!!
<AOP방법을 익히기 위해 습득할 용어>
- Aspect : 공통 기능
- Advice : 주요 기능 / 공통기능 자체
- Jointpoint : 핵심 기능들이 묶여 있고, 핵심 기능들 하나하나를 조인포인트라고 생각하면 된다.
- Pointcut : 조인트포인트의 어느 부분에 나는 공통 부분을 넣겠다.
- Weaving : 어드바이스를 포인트컷에 적용하는 행위 자체
--> 솔직히 아직 뭐라는 건지 모르겠음 ❤️
자, 다시 정신차리고 이해하려고 해보면!!!
* 공통 기능(어드바이스) / 핵심 기능(포인트 컷/메소드임)
* 어드바이스를 포인트 컷에 삽입하는 행위 = 위빙
* 스프링에서 AOP 구현 방법 : proxy 를 사용
어드바이스가 포인트 컷에 다이렉트로 들어가지 않고 proxy(뽀락지)를 통해 들어감
어드바이스가 뽀락지에게 요청을 하면 먼저 뽀락지에서 공통 기능을 수행한다. 이 뽀락지가 포인트 컷으로 가서 핵심 기능을 수행하고
다시 뽀락지로 와서 나머지 공통 기능을 또 수행하고 종료를 한다.
<스프링에서 AOP 구현 방식>
1. xml 스키마 기반 구현
2. 어노테이션 기반 구현
여윽시, 이것도 예제 프로젝트 만들어보면서 이해해보는게 제일 좋게쒀 ^.^
'☕ 따뜻한 개발 한 잔' 카테고리의 다른 글
[코딩연습] 나무위키 싸이트 따라하기 (0) | 2022.09.01 |
---|---|
[Spring] AOP Advice의 종류 (0) | 2022.08.07 |
[JS] 그 동안 for문을 length 로 돌렸는데, 더 효율적으로 돌리는 방법 (0) | 2022.08.02 |
[JS] 자바스크립트 let, var, const 의 차이 / let과 const 의 차이 (0) | 2022.08.01 |
[Oracle] Oracle19c 데이터 eclipse(2021-03)에 연결하기 / 왜 강의 그대로 따라가려해도 파일은 보이지 않는 것이늬 (0) | 2022.07.19 |
댓글