Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: 메소드 실행 시간을 구하기 위한 aop 구현 #136

Merged
merged 1 commit into from
Aug 29, 2024

Conversation

punchdrunkard
Copy link
Member

@punchdrunkard punchdrunkard commented Aug 29, 2024

요약

메소드 성능 측정을 위해 실행 시간을 구하기 위한 aop 를 구현합니다.

작업 내용

동작 방식

  • ExeTimer

    • 해당 애노테이션은 클래스, 인터페이스, enum (ElementType.TYPE) / method 단위 (ElementType.METHOD) 에 적용 가능
    • RetentionPloicy.RUNTIME : 애노테이션이 런타임 시점까지 유지되며, JVM에 의해 런타임 중에도 참조할 수 있음
    • 구현체 ExpTimerImpl 에서 런타임 도중에 리플렉션을 통해 메서드 이름을 측정하거나, 런타임 실행시간을 구하기 때문에 애노테이션의 유지 기간은 runtime
  • ExpTimerImpl

    • @Pointcut : ExeTimer 어노테이션이 붙은 메서드를 Join Point로 지정
    • @Around("timer()") : 애노테이션이 붙은 메서드가 실행 전 후의 동작을 기술
      • joinPoint.proceed(); 로 메서드를 실행하고 결과를 받아온다.
        -> 테스트 코드에서 해당 반환값을 리턴하지 않으면 null 을 리턴하는 문제가 있었다.
    • 메서드 실행 이후 스탑워치를 종료하고 로그를 찍는다.

기타 (논의하고 싶은 부분)

타 직군 전달 사항

close #135

@punchdrunkard punchdrunkard added the type: feat 새로운 기능 구현 label Aug 29, 2024
@punchdrunkard punchdrunkard self-assigned this Aug 29, 2024
Copy link

Test Results

90 tests   90 ✅  8s ⏱️
24 suites   0 💤
24 files     0 ❌

Results for commit 6159a2e.

@punchdrunkard punchdrunkard merged commit 7ca04f4 into main Aug 29, 2024
3 checks passed
@punchdrunkard punchdrunkard deleted the feat/#135 branch August 29, 2024 14:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: feat 새로운 기능 구현
Projects
None yet
Development

Successfully merging this pull request may close these issues.

feat: 메소드 실행 시간을 구하기 위한 aop 구현
1 participant