지난 DI(의존성 주입)에 이어서 스프링의 특징은 AOP에 대해 알아보겠습니다.
AOP 풀어 쓰자면 Aspect Oriented Programming 직역 하자면 관점 지향 프로그매밍 입니다.
그래서 관점 지향 프로그래밍이 뭔데?
웹 애플리케이션을 개발하는데 핵심 관점과 부가적 관점으로 기능을 나누어 공통기능을 모듈화
하는것이 AOP 라고 합니다.
핵심 기능에 보조 기능을 일일이 구현을 해줘야 하는데 이러면 효율적이 못하고 복잡한 코드가
발생하는데 이러한 문제점을 관점 지향 프로그래밍으로 해결이 가능합니다.
위 와 같이 흩어진 관심사를 Aspect로 모듈화하고 핵심적인 비즈니스 로직에서 분리하여 재사용하겠다는 것이
AOP의 취지다.
AOP 관련 용어
용어 | 설명 |
aspect | 구현하고자 하는 보조 기능을 의미 |
advice | aspect의 실제 구현체(클래스)를 의미 합니다. 메서드 호출을 기준으로 여러 지점에서 실행 |
joinpoint | advice를 적용하는 지점을 의미, 스프링은 method 결합점만 제공 |
pointcut | advice가 적용되는 대상을 지정, 패키지이름/클래스이름/메서드이름을 정규식으로 지정 |
target | advice가 적용되는 클래스를 의미 |
weaving | advice를 주기능에 적용하는 것을 의미 |
스프링 프레임워크 AOP기능을 구현 방법
- 스프링 프레임워크에서 제공하는 API를 이용하는 방법
- @Aspect 애너테이션을 이용하는 방법
스프링 프레임워크에서 제공하는 API를 이용하는 방법
1. 타킷 클래스를 지정
2. 어드바이스 클래스를 지정
3. 설정 파일에서 포인트컷을 설정
4. 설정 파일에서 어드바이스와 포인트컷을 결합하는 어드바이저를 설정
5. 설정 파일에서 스프링의 ProxyFactoryBean 클래스를 이용해 타킷에 어드바이스를 설정
6. getBean() 메서드로 빈 객체에 접근해 사용
'개발 > 스프링' 카테고리의 다른 글
6. 스프링 프레임워크-MVC 실습-1[자바웹을 다루는 기술] (0) | 2022.05.11 |
---|---|
5. 스프링 프레임워크 - AOP[자바 웹을 다루는 기술] (0) | 2022.05.11 |
4. 스프링 프레임워크-DI와 IoC[자바웹을 다루는 스킬] (0) | 2022.05.09 |
3. 스프링 프레임워크 - 스프링MVC[자바웹을 다루는 기술] (0) | 2022.05.08 |
1. 스프링 프레임워크 시작[자바 웹을 다루는 기술] (0) | 2022.05.03 |