• Java Future

    Future, CompletableFuture, ListenableFuture Future Future는 비동기 처리 결과를 표현하기 위해서 사용된다. 비동기 처리가 완료되었는지 확인하고, 처리 완료를 기다리고, 처리 결과를 리턴하는 메소드를 제공한다. 비동기 결과는 처리가 완료되면 get 메소드를 사용해서 얻을 수 있다. get 메소드는 비동기 처리가 완료될 때까지 blocking 된다. 비동기 작업을 취소하려면 cancel 메소드를 사용하면 된다. 비동기 작업이...


  • Testing your Auto-configuration

    Testing your Auto-configuration ApplicationContextRunner는 Spring Boot 2.0에서 추가된 내용이다. 그 이전 버전에서는 ApplicationContextRunner를 사용할 수 없다. ApplicationContextRunner Spring boot의 auto-configure는 여러 요인에 영향을 받는다. 사용자 설정 (@Bean 정의 그리고 Environment 설정), 특정 라이브러리의 존재 여부 등이 auto-configure에 영향을 준다. ApplicationContextRunner는 이러한 auto-configure를 테스트하기 위해서 사용한다. ApplicationContextRunner는 일반적으로 테스트 클래스의 필드로...


  • Micrometer

    Micrometer Micrometer란? 마이크로미터는 모니터링 시스템을 위한 측정 클라이언트에 대한 파사드를 제공한다. (SLF4J와 유사하다) 마이크로미터에 의해서 기록된 어플리케이션 메트릭 정보는 주로 모니터링 용도 또는 알람의 용도로 사용된다. 메트릭 정보를 수집하기 위해서 약간의 코드만 추가하면 되도록 설계되어있다. 또한 메트릭 정보의 이식성을 극대화하였다. 마이크로미터는 다음과 같은 모니터링 시스템을 지원한다 : Atlas, Datadog, Graphite,...


  • @EnableWebMvc

    @EnableWebMvc @Enable로 시작하는 어노테이션은 자바 설정에서 편의를 제공하기 위해서 도입되었다. @Enable 어노테이션은 개발자를 대신해서 많은 설정을 대신해준다. 이번 글에서 살펴볼 어노테이션 @EnableWebMvc이다. @EnableWebMvc는 @Configuration 설정을 임포트하는 방식이다. 간단하게 코드로 살펴보자. @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) @Documented @Import(DelegatingWebMvcConfiguration.class) public @interface EnableWebMvc { } 코드를 보면 알겠지만 DelegatingWebMvcConfiguration를 임포트하고 있다. DelegatingWebMvcConfiguration는 @Configuration 설정이다. 그리고 DelegatingWebMvcConfiguration는...


  • Standby Task

    Standby Task Standby Task란 KafkaStreams는 State Store를 제공한다. 스트림 프로세싱 어플리케이션에서는 데이터를 저장하고 조회하기 위해서 State Store를 사용한다. 이는 Stateful Operation을 구현하기 위해 꼭 필요한 기능이다. KafkaStreams 내의 모든 Task들은 하나 이상의 State Store를 가질 수 있다. State Store에 데이터를 저장하거나 조회하기 위해 API를 통해 접근할 수 있다. State Store의...