✅ 스프링의 3대 기반 기술중 하나인 관점 지향 프로그래밍(AOP)에 대해서 알아보자
AOP를 제대로 이해하고 활용하기 위해서는 등장하게 된 배경과 스프링의 도입 이유 적용함으로 얻을 수 있는 장점에 대한 이해가 필요하다.
스프링에서 적용된 AOP 기능중 제일 인기가 있는것은 "선언적 트랜잭션 기능"으로 서비스 추상화를 통해 근본적인 문제 해결에 더욱 더 세련되게 깔끔한 방식으로 다듬을 수 있었다고 했다. 이제 스프링이 왜 도입했는지에 대한 이유를 보자
트랜잭션 코드의 분리와 DI를 통한 연결을 책에 수록된 예제를 통해서 직접 다루어봤는데
해당 공부를 통해서 알 수 있었던 사실은 다음과 같다.
비즈니스 로직에 충실한 코드 작성
비즈니스 로직을 담당하고 있는 Impl 클래스들의 경우 코드를 작성할 때 트랜잭션과 같은 기술적인 내용에 관여받지 않는다.
스프링의 JDBC나 트랜잭션 API 그리고 스프링의 트랜잭션 추상화 API조차 필요없이 트랜잭션의 DI를 이용해 트랜잭션 기능을 가진 오브젝트를 먼저 호출하는 식으로 만들어서 언제든지 트랜잭션을 도입할 수 있도록 했다.
이를 통해서 로우레벨의 기술적인 지식이 부족한 개발자라도 비즈니스 로직을 이해하고 자바 기초에 충실하면서 복잡한 비즈니스 로직을 담은 클래스를 개발할 수 있게 되었다.
[참고]
토비의 스프링 Vol.01