• Working with SQL Databases

    Working with SQL Databases 스프링은 SQL 데이터베이스에 대한 여러가지 지원을 제공한다. JdbcTemplate를 사용해서 직접 JDBC에 접근할 수 있고, 하이버네이트와 같은 ORM에 대한 지원도 제공한다. Spring Data는 추가 기능을 제공한다. 인터페이스 정의를 통해 Repository를 구현할 수 있으며, 인터페이스에 정의된 메소드 이름을 통해서 쿼리를 생성한다. Configure a DataSource 자바의 Datasource 인터페이스는 데이터베이스...


  • Kafka Metric

    Kafka Metric reporter 브로커 그리고 클라이언트는 내부 메트릭 정보를 리포트한다. 메트릭 정보를 수집해서 모니터링 하고자 할 경우 카프카에서 제공하는 MetricReporter를 사용하면 된다. Producer, Consumer, Kafka Streams는 “metric.reporters”라는 속성을 가지고 있다. 이 속성으로 MetricReporter 구현체를 지정해주면 된다. MetricReporter 구현체는 새로운 메트릭이 생성이 되면 새로운 메트릭 정보를 metricChange(KafkaMetric metric) 메소드를 통해 전달받는다....


  • Bind request parameter

    HandlerMethodArgumentResolver 이 글에서는 Converter, ConverterFactory, HandlerMethodArgumentResolver에 대해 알아보고, 어떤 용도로 사용할 수 있는지에 대해 소개한다. Bind Request Parameters 기본적으로 Spring은 Request Parameter를 단순한 타입으로만 변환해준다. Request Parameter로 String, int, boolean 타입의 데이터를 전달하면, 컨트롤러 메소드 파리미터에 자동으로 바인딩된다. 하지만 컨트롤러 메소드에서 다양한 타입을 바인딩해야할 때가 있다. Converter 컨트롤러 메소드에서 특정...


  • ProductionExceptionHandler

    ProductionExceptionHandler ProductionExceptionHandler를 사용하면 브로커에 메시지를 보낼때 예외가 발생하는 경우 이를 처리할 수 있다. 기본 구현체는 DefaultProductionExceptionHandler로 항상 FAIL을 리턴한다. FAIL을 리턴하는 경우에는 Stream이 셧다운된다. ProductionExceptionHandler의 handle 메소드에서는 FAIL 또는 CONTINUE를 리턴할 수 있다. 보통은 어떤 Exception이 발생했느냐에 따라서 리턴되는 값이 결정된다. FAIL을 리턴하는 경우 Stream은 셧다운된다. 반면에 CONTINUE를 리턴하는 경우에는...


  • Reactive Streams

    Reactive Streams Reactive Reactive는 아래 4가지 특징을 가지고 있어야 한다. Reactive manifesto Responsive (응답성) : 리액티브 시스템은 가능한 모든 요청에 대해 적시에 응답할 수 있어야한다. 또한 발생한 문제에 대해 빠르고 효율적으로 대응할 수 있어야한다. 시스템은 언제나 응답 가능한 상태로 존재해야한다는 개념이다. Elastic (탄력셩) : 시스템은 변화하는 부하에 의해 자원의 변경이...