개발/스프링

2. 스프링 프레임워크-[자바웹을 다루는 기술]

괴발자-K 2022. 5. 3. 23:34

지난 DI(의존성 주입)에 이어서 스프링의 특징은 AOP에 대해 알아보겠습니다.

AOP 풀어 쓰자면 Aspect Oriented Programming 직역 하자면 관점 지향 프로그매밍 입니다.

그래서 관점 지향 프로그래밍이 뭔데?

웹 애플리케이션을 개발하는데 핵심 관점과 부가적 관점으로 기능을 나누어 공통기능을 모듈화

하는것이 AOP 라고 합니다.

핵심 기능에 보조 기능을 일일이 구현을 해줘야 하는데 이러면 효율적이 못하고 복잡한 코드가

발생하는데 이러한 문제점을 관점 지향 프로그래밍으로 해결이 가능합니다.

 

출처 : https://engkimbs.tistory.com/746

 위 와 같이 흩어진 관심사를 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() 메서드로 빈 객체에 접근해 사용