목록2024/11/03 (2)
오봉이와 함께하는 개발 블로그
스프링 핵심 원리 - 고급편 > AOP 소개 애스팩트핵심 기능과 부가 기능을 분리누군가는 이러한 부가 기능 도입의 문제점들을 해결하기 위해 오랜기간 고민해왔다.그 결과 부가 기능을 핵심 기능에서 분리하고 한 곳에서 관리하도록 했다. 그리고 해당 부가 기능을 어디에 적용할지 선 택하는 기능도 만들었다.이렇게 부가 기능과 부가 기능을 어디에 적용할지 선택하는 기능을 합해서 하나의 모듈로 만들었는데 이것이 바로 애스펙트(aspect)이다. 애스펙트는 쉽게 이야기해서 부가 기능과, 해당 부가 기능을 어디에 적용할 지 정의한 것이다. 예를 들어서 로그 출력 기능을 모든 컨트롤러에 적용해라 라는 것이 정의되어 있다.이전에 공부했던 @Aspect가 바로 그것이다. 그리고 스프링이 제공하는 어드바이저도 어드바이스(부가..
스프링 핵심 원리 - 고급편 > AOP 소개 핵심 기능과 부가 기능애플리케이션 로직은 크게 핵심 기능과 부가 기능으로 나눌 수 있다.핵심 기능은 해당 객체가 제공하는 고유의 기능이다. 예를 들어서 OrderService의 핵심 기능은 주문 로직이다.부가 기능은 핵심 기능을 보조하기 위해 제공되는 기능이다. 예를 들어서 로그 추적 로직, 트랜잭션 기능이 있다.이러한 부가 기능은 단독으로 사용되지 않고, 핵심 기능과 함께 사용된다. 예를 들어 로그 추적 기능은 어떤 핵심 기능이 호출되었는지 로그를 남기기 위해 사용한다. 그러니까 부가 기능은 이름 그대로 핵심 기능을 보조하기 위해 존재한다.주문 로직을 실행하기 직전 로그 추적 기능을 사용해야 하면, 핵심 기능인 주문 로직 기능과 부가 기능인 로그 추적 기능이..