인프런 커뮤니티 질문&답변
OrderRepositoryV3 sleep 함수 관련 질문
작성
·
481
1
[질문 내용]
OrderRepository class 에서 Thread.sleep()을 바로 save() 로직안에서 사용 안하고 따로 private 함수로 빼서 sleep()을 다시 만든 이유가 있을까요??
public void save(String itemId) {
AbstractTemplate<Void> template = new AbstractTemplate<>(trace) {
@Override
protected Void call() {
if (itemId.equals("ex")) {
throw new IllegalStateException("예외 발생!");
}
sleep(1000);
return null;
}
};
template.execute("OrderRepository.save()");
}
private void sleep(int millis) {
try {
Thread.sleep(millis);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
퀴즈
핵심 비즈니스 로직에 로깅 같은 부가 기능 코드가 섞일 때 발생하는 주요 문제점은 무엇일까요?
코드 재사용성 부족
핵심 로직 이해 어려움
부가 기능 추가/변경 어려움
객체 간 강한 결합
답변 1
1
김영한
지식공유자
안녕하세요. gslee100님
안에서 사용하셔도 됩니다. 그런데 try, catch 로직이 원본에 들어가게 되어서, 원본 로직이 지저분해지는 것을 방지해기 위해 별도로 만들었습니다.
감사합니다.





