spring

템플릿 메소드 패턴 Template Method Pattern이전 로그 추적기 예제를 보면 V0는 실제 처리해야할 핵심 기능만 있는 반면에 V3는 핵심 기능보다 로그 출력을 위한 부가 기능이 더 많고 복잡하다. 핵심 기능 vs 부가 기능핵심 기능 : 해당 객체가 제공하는 고유의 기능이다.ex) OrderService 클래스의 orderItem()의 핵심 기능은 주문 데이터를 저장하기 위해 레포지토리를 호출하는 orderRepository.save(itemId)가 핵심 기능이다.부가 기능 : 핵심 기능을 보조하기 위해 제공되는 기능이다.부가 기능은 단독으로 사용되지 않고 핵심 기능과 함께 사용된다.ex) 로그 추적기, 트랜잭션 기능 좋은 설계는 변하는 것과 변하지 않는 것을 분리하는 것이다.변하는 것과 변..
필드 동기화필드 동기화 - 개발, 적용이전 예제에서는 로그 출력 시 필요한 트랜잭션ID와 level을 동기화하기 위해서 TraceId를 파라미터로 넘겨서 구현했다. public interface LogTrace { TraceStatus begin(String message); void end(TraceStatus status); void exception(TraceStatus status, Exception e);}새 로그 추적기 인터페이스 예제 @Slf4jpublic class FieldLogTrace implements LogTrace { private static final String START_PREFIX = "-->"; private static final Strin..
예제 프로젝트 - V0@Repository@RequiredArgsConstructorpublic class OrderRepositoryV0 { public void save(String itemId) { //저장 로직 if (itemId.equals("ex")) { throw new IllegalStateException("예외 발생!"); } sleep(1000); } private void sleep(int millis) { try { Thread.sleep(millis); } catch (InterruptedException e) { e.printSt..
h2boom
'spring' 태그의 글 목록 (2 Page)