스프링 AOP개념과 용어

백PM ㅣ 2022. 10. 27. 21:59

AOP 란?

AOP는 관점지향프로그래밍(Aspect Oriented Programming)의 약자입니다.

관점지향프로그래밍은 애플리케이션의 기능을 핵심기능과 부가기능으로 분리하고 따로 모듈화하여 구현하는 것을 말합니다.

핵심기능은 한 작업에서 그 작업만이 수행하는 고유한 기능이라 할 수 있고, 부가기능은 다른 작업에서 공통적으로 수행하는 기능이라 할 수 있습니다.

AOP에서는 이러한 핵심기능을 핵심관심사항(core concern)이라고 하며 부가기능을 공통관심사항(cross-cutting concern)이라고 합니다.

 

AOP 용어

Aspect : 여러 작업에서 수행되는 관심사항을 말합니다.

 

Advice : 특정 Joinpoint에 행할 행동을 의미합니다. around, before, after 등의 종류가 존재합니다.

 

Joinpoint : 특정 Method를 실행하거나 Exception을 처리할 때처럼 프로그램이 실행되고 있는 한 시점을 말합니다.

 

pointcut : joinpoint의 한 종류이며 advice는 pointcut에 일치하는 joinpoint에 실행됩니다.

 

Introduction : 이익에 따라 추가적인 method나 field를 정의하는 것. Spring AOP는 advised object에 새로운 interface와 그 구현체를 introduce하도록 허가합니다.

 

Target object : 하나 또는 그 이상의 aspect에 의해 advised 되어 생성되는 객체를 말합니다.

 

AOP proxy : 핵심기능과 공통기능을 조립하여 구현하기 위해 AOP 프레임워크에 의해서 만들어진 객체를 말합니다.

 

Weaving : aspects와 어플리케이션의 object 또는 type들을 연결하여 advised object들을 만들어내는 과정을 말합니다. compile time, load time, runtime 모두에 실행될 수 있습니다.

 

 

'Spring' 카테고리의 다른 글

스프링 빈 스코프 정리  (0) 2022.10.27