• DeserializationExceptionHandler

    DeserializationExceptionHandler DeserializationExceptionHandler를 사용하면 레코드를 deserialize할 때 발생하는 예외를 처리할 수 있다. DeserializationExceptionHandler 인터페이스의 구현체는 레코드와 발생한 예외를 참고해서 FAIL 혹은 CONTINUE를 리턴해야 한다. FAIL을 리턴하는 경우 : Streams이 shutdown 되어야하는 경우 CONTINUE을 리턴하는 경우 : Streams이 예외를 무시하고 처리를 계속해야하는 경우 기본 구현 클래스는 LogAndFailExceptionHandler이다. 그리고 Kafka Streams는 아래와 같은...


  • Spring Retry

    RetryTemplate Spring Retry에서 제공하는 RetryTemplate을 사용하면, 재시도 구현을 아주 쉽게 할 수 있다. 본 글에서는 Spring Retry에서 제공하고 있는 RetryTemplate의 특징과 사용법에 대해서 소개한다. RetryTemplate 실패한 작업을 자동으로 재시도하는 것은 작업에 대한 실패 가능성을 줄이는데 도움을 준다. 보통 일시적인 오류인 경우에 이러한 재시도는 큰 도움을 준다. 예를 들어 다른 웹...


  • 병행성

    이 글은 “이펙티브 자바” 책 내용을 정리한 글입니다. 만약 저작권 관련 문제가 있다면 “gunjuko92@gmail.com”로 메일을 보내주시면, 바로 삭제하도록 하겠습니다. 10장 병행성 규칙 66 변경 가능 공유 데이터에 대한 접근은 동기화하라 synchronized synchronized 키워드는 특정 메서드나 코드 블록을 한 번에 한 스레드만 시용하도록 보장한다. 동기화 메커니즘을 적절히 사용하기만 하면, 모든 메소드가...


  • Application Events and Listeners

    Application Events and Listeners SpringApplication은 ContextRefreshedEvent와 같은 일반적인 스프링 프레임워크 이벤트 외에도 몇몇 추가적인 애플리케이션 이벤트들을 발생시킨다. 몇몇 이벤트들은 ApplicationContext가 생성되기 전에 발생하기 때문에 리스너를 @Bean으로 등록할 수 없다. 리스너들은 SpringApplication.addListeners(..)나 SpringApplicationBuilder.listeners(…) 메소드들을 사용해 등록할 수 있다. 리스너들이 자동적으로 등록되게 하기 위해서는, META-INF/spring.factories 파일을 프로젝트에 추가하고 org.springframework.context.ApplicationListener 키값을 사용해서 리스너를...


  • RestTemplate

    RestTemplate Spring에서 제공하는 RestTemplate은 강력하고, 인기있는 자바 기반 REST 클라이언트이다. 개념적으로는 다른 템플릿 클래스와 유사하다. RestTemplate은 동기 API를 지원하며, blocking I/O에 의존한다. 동시성이 낮은 경우에 사용하면 괜찮다. HttpMessageConverter는 객체를 Http Request Body로 변환할 때 사용된다. 또한 response을 객체로 변환할 때도 HttpMessageConverter를 사용한다. HttpMessageConverter는 설정할 수 있다. RestTemplate은 HTTP 클라이언트 라이브러리보다...