[Spring] AOP

ETC/기술면접 / / 2021. 6. 10. 18:10

1. 명칭

AOP는 Aspect Oriented Programming의 약자로 우리말에서는 '관점 지향 프로그래밍'이라 한다.

 

 

 

2. 정의

특정 로직이 발생할 때 핵심적인 관점부가적인 관점을 나누어 그것들을 모아 하나의 모듈화를 만드는 기법이다.

 

예를 들면 자동차라는 패키지 규모가 있을때...

바퀴 클래스 ... 타이어, 휠
엔진 클래스 ... 피스톤, 점화 플러그
트랜스미션 클래스 ... 전진 기어, 후진 기어
페달 클래스 .... 가속 페달, 브레이크 페달
쉬프트 클래스... D(Drive), R(Reverse)

... 라고 간략하게 가정을 해보자.

 

여기서 나는 자동차가 전진하는 관점을 두고 프로그래밍을 하고 싶을때

바퀴 클래스 ... 타이어,
엔진 클래스 ... 피스톤, 점화 플러그
트랜스미션 클래스 ... 전진 기어, 후진 기어
페달 클래스 .... 가속 페달, 브레이크 페달
쉬프트 클래스... D(Drive), R(Reverse)
Aspect 전진 ... 타이어, 휠, 피스톤, 점화 플러그, 전진 기어, 가속 페달, D(Drive)

라고 하나의 모듈화를 할 수 있다.

 

즉, 이러한 각 클래스별로 흩어진 관심사들을 하나의 비즈니스 로직으로 모아 재사용을 하는 것이 AOP의 취지가 된다.

'ETC > 기술면접' 카테고리의 다른 글

[Oracle] SYNONYM  (0) 2021.06.13
[Oracle] INDEX  (0) 2021.06.13
[Spring] IOC  (0) 2021.06.13
[Spring] DI  (0) 2021.06.11
Intro...  (0) 2021.06.10