티스토리 뷰

개발/스프링

AOP에 대하여 (작성중)

최컬리 2019. 10. 24. 16:13

  AOP란 Aspect Oriented Programming의 약자로 보통 관점 지향 프로그래밍으로 번역되며 관점과 함께 기능이나 관심으로 번역될 수 있다. 여러 객체의 핵심 기능과 공통 기능의 구현을 분리함으로써 핵심 기능을 구현한 코드의 수정 없이 공통 기능을 적용할 수 있도록 하고, 재사용성을 높여준다.

  스프링은 런타임에 프록시 객체를 생성해 공통 기능을 삽입하는 방식으로 AOP를 구현한다. 이러한 구현 방식 이외에 핵심 기능에 공통 기능을 삽입하는 방법에는 두 가지가 더 있다. 이는 스프링 AOP에서는 지원하지 않으며 AspectJ와 같은 AOP 전용 도구를 사용해서 적용할 수 있다.

  1. 컴파일 시점에 코드에 공통 기능을 삽입하는 방법
  2. 클래스 로딩 시점에 바이트 코드에 공통 기능을 삽입하는 방법

주요 용어

Advice : 공통 관심 기능을 언제 핵심 로직에 적용할 지를 정의

Aspect : 여러 객체에 적용되는 공통 관심 기능. 예로 트랜잭션이나 보안 등

Joinpoint : Advice를 적용할 수 있는 메서드 호출 시

Pointcut : 실제 Advice가 적용되는 Joinpoint ( 정규 표현식이나 AspectJ 문법 이용해 정의)

Weaving : Advice를 핵심 로직 코드에 적용하는 것

 

 

 

출처 : 최범균, 스프링 5 프로그래밍, 가메출판사, 2018

'개발 > 스프링' 카테고리의 다른 글

'스프링 부트 시작하기'로 스프링 부트 시작하기  (0) 2019.08.23
댓글