본문 바로가기

aop

Spring AOP: AOP Concepts 2 이 글은 Spring Framework 5.2.8 버전 Core Technologies의 AOP 문서에 기반하여 작성되었습니다. Spring AOP 다음과 같은 Advice 타입들이 있습니다. Before advice Join point 앞에서 작동하지만 Join point로 흘러가는 흐름은 제어할 수는 없는 Advice입니다. (exception이 발생하는 경우는 제외) After returning advice Join point가 문제없이 정상적으로 종료되었을 때 작동하는 Advice입니다. (exception을 던지지 않고 정상적으로 return 된 경우 등) After throwing advice exception에 의해 method가 종료되는 경우 작동하는 Advice입니다. After (fin..
Spring AOP: AOP Concepts 1 이 글은 Spring Framework 5.2.8 버전 Core Technologies의 AOP 문서에 기반하여 작성되었습니다. AOP에서 중점적으로 사용되는 용어들에 대한 정의입니다. 이 용어들은 Spring에만 국한된 것은 아니며, 용어들의 어감이 직관적으로 느껴지지 않을 수 있습니다. 하지만 Spring을 위한 새로운 용어를 사용하는 것은 더 큰 혼란을 가져올 수 있을 것입니다. Aspect 앞서 언급된 Aspect는 여러 Class들을 관통하는 관심사를 모듈화한 것입니다. Java 어플리케이션에서의 Transaction 관리가 횡단 관심사의 좋은 예시입니다. Spring AOP에서 Aspect는 스키마 기반 접근, 혹은 애너테이션 기반한 접근법으로 사용이 가능하며, 특히 @AspectJ 스타일에 ..
Spring AOP: Aspect Oriented Programming with Spring 이 글은 Spring Framework 5.2.8 버전 Core Technologies의 AOP 문서에 기반하여 작성되었습니다. AOP는 프로그램 구조에 대한 다른 사고방식을 제공함으로써 OOP를 보완하는 역할을 보완합니다. 즉 AOP라고 하는 것은 OOP를 대체하는 개념이라기 보다는 OOP와 결합하여 보완적인 관계를 가질 수 있는 것입니다. OOP의 모듈 단위는 Class라는 형태로 표현할 수 있을 것이며, AOP의 모듈 단위는 Aspect로 말할 수 있습니다. Aspect는 여러 타입들과 객체를 가로지르는 관심을 모듈화한 것입니다. 예를 들면 Transaction의 관리 등이 있을 것입니다. 그리고 이러한 가로지르는 관심이라는 것을 문자 그대로 횡단 관심사라고 표현하기도 합니다. AOP는 Spring..