AOP 배경 소프트웨어를 개발하다 보면, 로깅이나 예외처리와 같은 비지니스로직이 아닌 코드를 반복하게 된다. 이러한 로직은 중요한 부분이지만, 실제 비지니스 로직과는 거리가 먼 것이 대부분이다. 여러 다른 부분의 코드에 사용될 수 있지만, 반복적이다. 유지보수를 할 때도, 여러곳에 분산되어 있으면 관리가 어렵게 된다. 이를 해결하기 위해 나온 개념이 Aspect Oriented Programming, 즉 관점지향 프로그래밍이다. 횡단관심사 (Cross-Cutting Concern) 여러 모듈에 걸쳐 공통적이고 반복적인 처리 로직을 일컷는 말이다. AOP는 이러한 횡단관심사들을 한데 모아 관리하는 것에 관심이 있다. 횡단관심사의 대표적인 예들은 다음과 같다: 보안 로깅 트랜잭션 모니터링 캐시 예외 AOP의..