public Long join(Member member){
long start = System.currentTimeMillis();
try {
validateDuplicateMember(member);
memberRepository.save(member);
return member.getId();
} finally {
long finish = System.currentTimeMillis();
long timeMs = finish - start;
System.out.println("join = " + timeMs + "ms");
}
}
우선 repository - service - MemberService의 join 메소드에
long start = System.currentTimeMillis();
로 시작하는 시간을 저장한다.
총 걸린 시간은 logic이 끝날 때의 시간을 재야 하는 것이고,
예외가 터져도 시간은 찍혀야 하기 때문에
try - finally 문을 사용하여 예외를 잡아준다.
long finish = System.currentTimeMillis();
를 finally문 안에 적어주고,
long timeMs = finish - start;
finish - start를 한 결과물을 timeMs에 저장한다.
그리고
System.out.println("join = " + timeMs + "ms");
출력문을 작성해준다.
이렇게 작성하고,
회원가입을 돌려보면,
이러한 결과가 나오는 것이다.
또 위와 똑같이 findMembers에도
public List<Member> findMembers(){
long start = System.currentTimeMillis();
try {
return memberRepository.findAll();
} finally {
long finish = System.currentTimeMillis();
long timeMs = finish - start;
System.out.println("findMembers " + timeMs + "ms");
}
// return memberRepository.findAll();
}
이러한 코드를 작성해놓고,
돌려보면, 잘 돌아가는 것을 볼 수 있고
실행 결과를 확인하기 위해서
HelloSpringApplication을 실행시키고
localhost:8080의 회원 목록을 들어갔다가
다시 실행결과를 확인해보면
위와 같이 실행 시간이 확인된다.
=> AOP 사용하여 해결