티스토리 뷰
AOP란 Aspect Oriented Programming의 약자로 보통 관점 지향 프로그래밍으로 번역되며 관점과 함께 기능이나 관심으로 번역될 수 있다. 여러 객체의 핵심 기능과 공통 기능의 구현을 분리함으로써 핵심 기능을 구현한 코드의 수정 없이 공통 기능을 적용할 수 있도록 하고, 재사용성을 높여준다.
스프링은 런타임에 프록시 객체를 생성해 공통 기능을 삽입하는 방식으로 AOP를 구현한다. 이러한 구현 방식 이외에 핵심 기능에 공통 기능을 삽입하는 방법에는 두 가지가 더 있다. 이는 스프링 AOP에서는 지원하지 않으며 AspectJ와 같은 AOP 전용 도구를 사용해서 적용할 수 있다.
- 컴파일 시점에 코드에 공통 기능을 삽입하는 방법
- 클래스 로딩 시점에 바이트 코드에 공통 기능을 삽입하는 방법
주요 용어
Advice : 공통 관심 기능을 언제 핵심 로직에 적용할 지를 정의
Aspect : 여러 객체에 적용되는 공통 관심 기능. 예로 트랜잭션이나 보안 등
Joinpoint : Advice를 적용할 수 있는 메서드 호출 시점
Pointcut : 실제 Advice가 적용되는 Joinpoint ( 정규 표현식이나 AspectJ 문법 이용해 정의)
Weaving : Advice를 핵심 로직 코드에 적용하는 것
출처 : 최범균, 스프링 5 프로그래밍, 가메출판사, 2018
'개발 > 스프링' 카테고리의 다른 글
'스프링 부트 시작하기'로 스프링 부트 시작하기 (0) | 2019.08.23 |
---|
댓글