AOP(Aspect Oriented Programming) AOP는 공통 관심(Aspect)사항을 구현한 코드를 핵심 로직을 구현한 코드 안에 삽입하는 것을 의미한다. 예를 들어, 위 처럼 Class A, B, C가 있고, 각각의 색은 특정 기능을 하는 소스들을 의미한다고 가정하자. 여기서 공통된 소스부분을 같은 색상이라고 보면 된다. 코드가 중복되는 부분이 많다보니 나중에 수정해야할 일이 생기거나 했을 때, 개발 효율이 떨어지는건 당연한 일일지도 모른다. 하지만, AOP에서는 이런 공통된 부분을 관점(Aspect)이라는 모듈로 정의하고, 필요할 때마다 가져다 쓸 수 있도록 하고 있으며, 이것이 AOP의 기본적인 개념이다. 다시 말해, AOP 기법에서는 이러한 핵심 로직을 구현한 코드에서 공통된 기능을 직접적으로 호출하는 형태가 아니라, AOP 라이브러리를 통해 공통기능을 구현한 코드가 핵심 로직에 알맞게 삽입되어서 실행되도록 하고 있다. 만약 공통기능을 수정해야하는 상황이 발생하더라도 핵심 로직 코드를 변경할 필요가 없이, 공통된 소스를 변경하고 핵심 로직 코드에 적용만 시키면 된다. AOP 용어 정리 Advice 언제 공통기능을 핵심 로직에 적용할지를 정의하고 있다. 종 류 설 명 Before Advice 대상 객체의 메서드 호출 전에 공통 기능을 실행 After Returning Advice 대상 객체의 메서드가 예외 없이 실행된 이후에 공통기능을 실행 After Throwing Advice 대상 객체의 메서드를 실행하던 도중에 예외가 발생한 경우에 공통기능 실행 After Advice 예외 발생여부와 관계없이 대상 객체의 메서드 실행 후 공통기능을 실행 Around Advice 대상 객체의 메서드 실행 전 , 후 또는 예외 발생 시점에 공통 ...
댓글
댓글 쓰기