이것저것
AOP 란? 본문
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