AOP

JoongHyeok.Velog·2021년 11월 18일
0

Spring

목록 보기
1/4
post-thumbnail

AOP

📌 1. AOP란?

Aspect Oriented Programming 관점지향 프로그래밍

  • 문제를 바라보는 관점을 기준으로 프로그래밍 하는 기법
  • 시스템을 핵심 관심사( Core Concern )와 횡단관심사 or 공통관심사 ( Cross-Cutting Concern )로 구분해 설계 구현 테스트 운영하는 것을 말한다
  • 핵심관심사 ( Core Concern ) : 시스템의 업무 목적에 해당하는 주요 로직 ( ex - 결제 등록 게시 )
  • 횡단관심사 ( Cross Cutting Concern ) : 시스템의 여러 부분에 걸쳐 적용되는 공통적인 로직 ( ex - 트랜잭션, 로깅, 보안 )

📌 2. AOP 주요 용어

  • Joinpoint : Advice를 적용 가능한 지점을 의미한다. 메서드 호출, 필드 값 변경 등이 Joinpoint에 해당한다.
  • Pointcut : Joinpoint의 부분 집합으로서 실제로 Advice가 적용되는 Joinpoint를 나타낸다.
  • Advice : 언제 공통 기능을 적용할 지를 정의한다.
  • Weaving : Advice를 핵심 로직 코드에 적용하는 것을 weaving이라고 한다.
  • Aspect : 여러 객체에 공통으로 적용하는 기능을 Aspect라고 한다.

📌3-1 AOP 적용 전

📌3-2. AOP 적용 후

📌 4. AOP 를 사용하는 이유

  • AOP는 시스템의 여러 영역에 걸쳐 공통적이고 반복적으로 적용된 횡단 관심사 로직을 분리하여 별도의 모듈에서 설계 구현 운영하는 프로그래밍기법이다.
  • 반복적인 작업을 피할 수 있어서 효율적인 개발이 가능하고
    이후 유지보수시 AOP 부분만 변경하면 되므로 유지보수성이 향상된다.
profile
영차영차

0개의 댓글