스프링부트 ~30 | 관점지향 프로그래밍 (AOP, aspect-oriented programming)
Intro 웹애플리케이션 개발시 아주 기본적인 CRUD 구현 말고도 부가기능이 필요할 것이다. 필요한 부가기능의 예시로, 잘 동작하는지 확인하는 로깅, 메서드 성능측정을 위한 수행시간 확인 기능, (@RunningTime) 핵심 비즈니스로직 (은행이라면 입금 출금 이체 등) 등이 있겠다. 한편 핵심 비즈니스 로직은 또다시 로깅, 보안, 트랜잭션 등 부가기능을 포함한다. 그래서 반복적으로(복붙) 작성될 여지가 있는데, 그러면 당연히 코드가 중복되어 더러워진다. => 이 문제에서 AOP 기법이 나온다! AOP 로깅, 보안, 트랜잭션 등 부가기능(로직)을 필요한 특정시점에 주입해주는 것이다. DI가 특정 객체를 주입해주는 것과 비슷하게, 특정 로직을 주입해주는 것이다. 트랜잭션 처리를 위해 지금까지 사용한 @..
다른 블로그