• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

실무에서의 AOP 사용법에 대한 질문

23.08.27 15:09 작성 조회수 402

0

안녕하세요 김영한님!
강의 감사히 잘 듣고 있습니다.


지난 11강 포인트컷 파트에서 여러 지시자들의
사용법을 많이 알려주셨는데요,
제 기억에는 execution 지시자의 사용 빈도가 높다고
말씀하셨던 것으로 기억합니다.

그런데 이번 강의에서는 어노테이션을 생성해
@annotation 지시자를 사용하셨습니다.


제가 보기엔 @annotation 지시자는 조인포인트에
해당 어노테이션을 붙여야 하는 번거로움이 있지만
그래서 오히려 더욱 명확한 코드가 되는 것 같고,

반대로 execution 지시자는 조인포인트가 Aspect를 알 필요가 없어 더 나은 코드처럼 보이기도 합니다.


실무에서 execution과 @annotation 지시자 중
어느 방식을 더 선호하시는지 알고 싶습니다.


제가 잘못 이해한 부분이 있다면 양해부탁드립니다!

답변 1

답변을 작성해보세요.

1

안녕하세요. foodsmith96님

사실 이 부분에 정답이 없습니다. 다음과 같은 트레이드 오프가 있을 뿐입니다 :)

1. @annotation 지시자:

- 장점: 조인포인트를 명확하게 표시할 수 있습니다. 따라서 해당 애노테이션을 보는 개발자는 해당 메서드나 클래스에 특정 Aspect가 적용되었음을 쉽게 알 수 있습니다.

- 단점: 특정 메서드나 클래스에 애노테이션을 추가해야 합니다. 이는 추가적인 작업이 될 수 있으며, 모든 조인포인트에 일관성 있게 애노테이션을 붙이는 것이 어려울 수도 있습니다.

2. execution 지시자:

- 장점: 조인포인트를 코드 내에서 직접 명시하지 않고 Aspect에서 패턴을 사용해 정의할 수 있습니다. 이로 인해 Aspect와 비즈니스 로직의 분리가 더욱 명확해집니다.

- 단점: 조인포인트가 어디에 적용되었는지 코드만 보고 즉시 파악하기가 어려울 수 있습니다. 따라서 Aspect의 로직을 이해하기 위해서는 해당 지시자의 패턴을 잘 파악해야 합니다.

그런 장단점 때문에 실무에서는 둘다 사용하게 되지만, 막상 사용해보면 애노테이션이 좀 더 직관적이고 실용적이기 때문에 많은 개발자들이 애노테이션 방식을 더 선호하는 경향이 있습니다.

감사합니다.