AOP(Aspect Oriented Programming)

Jay Lee·2022년 12월 26일
0

AOP(Aspect Oriented Programming)란?

AOP는 관점 지향 프로그래밍으로, 로직을 핵심적인 관점과 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하는 것을 의미합니다.

이 때, 핵심적인 관점의 경우 핵심 Business Logic이 되고 부가적인 기능의 경우 DB 연동, 로깅, I/O 등이 있을 수 있다.

AOP에서 각 관점을 기준으로 모듈화한다는 것은 일련의 코드들을 각 Aspect로 모듈화 하고 핵심 비즈니스 로직에서 분리하여 재사용하기 위함이다.

AOP 주요 개념

  • Aspect : 관심사를 모듈화 한 것(부가 기능)
  • Target : Aspect를 적용하는 곳
  • Advice : 실질적인 부가기능을 담은 구현체
  • JointPoint : Advice가 적용될 위치
  • PointCut : JointPoint의 상세한 스펙을 정의한 것 (실행 지점)

Spring AOP 특징

프록시 패턴 기반의 AOP 구현체, 프록시 객체를 쓰는 이유는 접근 제어 및 부가기능을 추가하기 위함이다.
Spring Bean에만 AOP를 적용할 수 있으며
모든 AOP 기능을 제공하는 것이 아닌 스프링 IoC와 연동하여 애플리케이션에서 흔히 발생하는 문제들을 쉽게 해결할 수 있도록 지원한다.

profile
Data Engineer

0개의 댓글