Spring - AOP
AOP Aspect Oriented Programming, 관점 지향 프로그래밍은 여러 클래스에 나뉜 책임을 Aspect, 관점이라고 부르는 별도의 클래스에 캡슐화하는 방식을 말한다. IoC가 낮은 결합도를 특성으로 한다면 AOP는 높은 응집도를 특성으로 한다. 쉽게 말해, 클래스의 로직들을 핵심적인 관점( 비즈니스 로직 ), 부가적인 관점 ( 트랜잭션 관리, 로깅, 캐싱, 보안 등 )으로 나누어 본다면, 핵심 로직은 클래스에 남겨두고, 공통되는 부가적인 관점들을 모듈화하여 Aspect라고 부르는 클래스에 담는 것이다. 결국 흩어진 관심사(Crosscutting Concerns)들을 캡슐화하여 비즈니스 로직에서 분리하여 재사용하겠다는 것이다. AOP 주요 개념 Aspect : 위에서 설명한 흩어진 관심사..