Files
2021-12-13 21:23:43 +09:00

1.0 KiB

AOP가 필요한 상황

  • 만약 모든 메소드의 호출 시간을 측정하고 싶다면?
  • 공통 관심 사항(cross-cutting concern) vs 핵심 관심 사항(core concern)
  • 회원 가입 시간, 회원 조회 시간을 측정하고 싶다면?
  • 즉, 공통 관심 사항핵심 관심 사항을 분리해서 적용하고 싶을 때 사용한다.

추가설명

  • 실제 운영에서는 처음에 서버를 올리고 이것저것 호출하는 warmUp이라는 것을 한다.

문제

  • 회원가입, 회원 조회에 시간을 측정하는 기능은 핵심 관심 사항(핵심 비즈니스 로직)이 아니다.
  • 시간을 측정하는 로직은 공통 관심 사항(공통 비즈니스 로직)이다.
  • 시간을 측정하는 로직과 핵심 비즈니스의 로직이 섞여서 유지보수가 어렵다.
  • 시간을 측정하는 로직을 별도의 공통 로직으로 만들기 매우 어렵다.
  • 시간을 측정하는 로직을 변경할 때 모든 로직을 찾아가면서 변경해야 한다.