AOP (Aspect Oriented Progamming)
AOP란 관점지향 프로그래밍이다.
우리가 흔히 Java를 OOP(객체지향 프로그래밍)라고 하는데,
AOP란 OOP의 한계점을 보완하고 더 발전시키고자 나온 개념이다.
객체지향 프로그래밍에서는 공통의 목적이 있는 데이터와 동작을 묶어서 하나의 객체로 정의한다.
또한 이러한 객체를 적극적으로 활용하며 기능을 재사용할 수 있는 장점을 갖는다.
하지만 객체지향의 한계는 명확한데 트랜잭션, 로깅, 보안 등의 부가기능은 업무 기능과는 상관없지만,
여러 클래스에 적용이 되므로 중복되는 코드가 존재할 수 밖에 없다.
이러한 횡단 관심사(부가기능) 이라고 한다.
OOP만으로 횡단 관심사 코드를 핵심 기능과 분리하는데 한계점이 있었고,
관심사 분리적 한계를 해결 하기위해 등장한 것이 AOP이다.
AOP의 주요 개념
- Aspect : 관심사(부가기능)를 모듈화 한 것.
- Target : Aspect를 적용할 곳. (Class, Method 등)
- Advice : 실직적인 부가기능을 담은 구현체. (부가기능이 어떠한 행위를 하는지 등)
- JointPoint : Advice를 적용할 위치.
- PointCut : JointPoint의 상세한 스펙을 정의한 것.
'Computer Science > Network' 카테고리의 다른 글
JWT (Json Web Token) (0) | 2023.05.01 |
---|---|
Context Switching (컨텍스트 스위칭) (0) | 2023.04.30 |
REST / REST API / RESTful (0) | 2023.04.23 |
CORS (Cross-Origin Resource Sharing) (0) | 2023.04.23 |
3-Way-Hadshake / 4-Way-Handshake (0) | 2023.04.22 |