이것저것

AOP 란? 본문

카테고리 없음

AOP 란?

nays111 2021. 5. 21. 10:55

AOP (Abstract Oriented Programming) 은 스프링 프레임워크의 핵심 기능 중 하나이면 "흩어진 코드를 한 곳으로 모으는 기법"이다.

즉, 여러 곳에서 쓰이는 공통 기능을 모듈화하고, 쓰이는 곳에 필요할 때 가져다씀으로써 유지 보수 측면에서 용이할 뿐더러 재사용에 용이하도록 만들 수 있다.

 

class A {
 
    method a() {
        AAAA
 
        a하다.
 
        BBBB
    }
 
    method b() {
        AAAA
 
        b하다.
 
        BBBB
    }
}
 
class B {
    method c() {
        AAAA
 
        c하다.
 
        BBBB
    }
}

위 코드에서는 동일한 기능의 AAAA, BBBB 가 여기저기서가 사용되다보니, 코드 변경이 필요한 경우 일일이 다 찾아가서 바꿔줘야 한다. AOP 는 AAAA, BBBB 와 같이 공통된 기능을 때어내 분리하고, method a,b,c는 자신이 해야할 최소한의 일만 갖고 있어야 한다는 개념이다.

 

주요 용어
- Aspect : 공통기능
- Advice : Aspect의 기능 자체
- Jointpoint : Advice를 적용해야 되는 부분 (ex : 필드, 메소드 / 스프링에서는 메소드만 해당)
- Pointcut : Jointpoint 의 부분으로 실제로 Advice 가 적용된 부분
- Weaving : Advice를 핵심기능에 적용하는 행위

 

 

 

 

 

Comments