🙂강의🙂
- 모든 메소드의 호출 시간을 측정하고 싶다면 ?
[ MemberService 회원 조회 시간 측정 코드 추가 ]
✅ src/main/java/hello.hellospring/service/MemberService 코드 추가하기
...
@Transactional
public class MemberService {
...
// 회원 가입
public Long join(Member member) {
// 시작할 때 시간 측정
long start = System.currentTimeMillis();
try {
// 같은 이름이 있는 중복 회원 X
validateDuplicateMember(member); // 중복 회원 검증
memberRepository.save(member);
return member.getId();
} finally {
// 끝날 때 시간 측정
long finish = System.currentTimeMillis();
long timeMs = finish - start;
System.out.println("join = " + timeMs + "ms");
}
}
...
// 전체 회원 조회
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");
}
}
...
}
✅ 테스트 하기
⚠️ 문제점 ⚠️
→ 시간 측정 기능은 공통 관심 사항
→ 시간 측정 로직과 핵심 비즈니스 로직이 섞여 유지보수가 어려움
→ 시간 측정 로직을 별도의 공통 로직으로 만들기는 힘듦
→ 시간 측정 로직 변경 시 모든 로직을 변경해야 함
➡️ AOP 가 필요 !!
'Spring > 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술' 카테고리의 다른 글
[ AOP ] AOP 적용 (0) | 2023.09.19 |
---|---|
[ 스프링 DB 접근 기술 ] 스프링 데이터 JPA (0) | 2023.09.17 |
[ 스프링 DB 접근 기술 ] JPA (0) | 2023.09.16 |
[ 스프링 DB 접근 기술 ] 스프링 JdbcTemplate (0) | 2023.09.14 |
[ 스프링 DB 접근 기술 ] 스프링 통합 테스트 (0) | 2023.09.13 |