AOP(Aspect Oriented Programming)

Soozoo·2024년 8월 12일

Spring

목록 보기
6/12
  • 객체지향 프로그래밍(Object Oriented Programming)을 보완하는 개념으로, 어플리케이션을 객체지향적으로 모듈화하여 작성하더라도 다수의 객체에 분산되어 중복적으로 존재하는 공통 관심사가 여전히 존재한다. AOP는 이를 횡단 관심으로 분리하여 핵심 관심과 엮어서 처리할 수 있는 방법을 제공한다.
  • 로깅, 보안, 트랜잭션 등의 공통 기능을 기존의 비즈니스 로직에 영향을 주지 않고 모듈화하여 처리할 수 있도록 지원하는 프로그래밍 기법이다.

AOP (Aspect-Oriented Programming) 용어들

용어설명
Join Point- 횡단 관심(Crosscutting Concerns) 모듈이 삽입되어 동작할 수 있는 실행 가능한 특정 위치를 말함 - 메소드 호출, 메소드 실행 자체, 클래스 초기화, 객체 생성 시점 등
Pointcut- Pointcut은 어떤 클래스의 어느 JoinPoint를 사용할 것인지를 결정하는 선택 기능을 말함 - 가장 일반적인 Pointcut은 ‘특정 클래스에 있는 모든 메소드 호출’로 구성됨
Aspect- Advice와 Pointcut의 조합 - 어플리케이션이 가지고 있어야 할 로직과 그것을 실행해야 하는 지점을 정의한 것
Advice- Advice는 관점(Aspect)의 실제 구현체로 결합점에 삽입되어 동작할 수 있는 코드 - Advice는 결합점(JoinPoint)과 결합하여 동작하는 시점에 따라 before advice, after advice, around advice 타입으로 구분됨 - 특정 Join point에 실행하는 코드
Weaving- Pointcut에 의해서 결정된 JoinPoint에 지정된 Advice를 삽입하는 과정 - Weaving은 AOP가 기존의 Core Concerns 모듈의 코드에 전혀 영향을 주지 않으면서 필요한 Crosscutting Concerns 기능을 추가할 수 있게 해주는 핵심적인 처리 과정임

profile
넙-죽

0개의 댓글