마스크는 답답하다
Published 2023. 4. 26. 02:27
AOP Computer Science/Network

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

검색 태그