• 병행성

    이 글은 “이펙티브 자바” 책 내용을 정리한 글입니다. 만약 저작권 관련 문제가 있다면 “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 클라이언트 라이브러리보다...


  • 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) 메소드를 통해 전달받는다....