• Spring Data JPA를 활용한 페이징 처리

    Spring Data JPA를 이용한 페이징 처리 PagingAndSortingRepository PagingAndSortingRepository는 CrudRepository를 상속하고 있는 인터페이스이다. PagingAndSortingRepository는 페이징 처리를 위한 메소드를 제공하고 있다. public interface PagingAndSortingRepository<T, ID extends Serializable> extends CrudRepository<T, ID> { Iterable<T> findAll(Sort sort); Page<T> findAll(Pageable pageable); } 페이지의 크기가 20인 유저 페이지의 2번째 페이지를 가져오려면 아래와 같은 코드를 작성하면 된다. Pageable...


  • Serve static resources with spring

    ResourceHttpRequestHandler ResourceHandlerRegistry는 ResourceHttpRequestHandler를 설정하여 클래스패스, WAR, 파일시스템에 존재하는 정적 자원을 제공하기 위해서 사용된다. ResourceHandlerRegistry는 설정 클래스 내에서 프로그래밍 방식으로 설정할 수 있다. Serving a Resource Stored in the WAR 만약에 webapp/resources 폴더에 위치한 특정 css 파일을 가져온다고 해보자. 주로 정적 파일은 webapp/resources 폴더에 위치한다. 그러면 아래와 같은 설정을 추가해주면 된다....


  • Testing a stream application

    Testing a Stream Application Kafka Streams 어플리케이션을 테스트 하기 위해서, 카프카가 test-utils을 제공한다. 이는 dependecy를 추가함으로써 사용할 수 있다. 예를 들어 pom.xml에 다음과 같이 디펜던시를 추가할 수 있다. <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-streams-test-utils</artifactId> <version>1.1.0</version> <scope>test</scope> </dependency> test-utils 패키지는 TopologyTestDriver를 제공한다. 해당 클래스는 Topology에 데이터를 흘려보내는데 사용된다. 테스트 드라이버는 input 토픽으로부터 데이터를 읽어와서...


  • KafkaStream Architecture

    Architecture 이 글에서는 Kafka Stream의 Thread Modeling과 Task에 대해서 정리한 글이다. 더 자세한 내용은 공식문서를 참고하길 바란다. Kafka Stream을 사용하면 스트림 어플리케이션을 쉽게 개발할 수 있다. 하지만 이를 위해서는 기본적으로 Kafka Streams가 어떻게 Thread를 생성하고 각 Thread에 Task를 할당하는지 알 필요가 있다. 아래의 그림은 Kafka Streams을 사용한 어플리케이션의 구조를 나타낸다....


  • Processor API

    Processor API 본 글은 Processor API를 번역하고 정리한 글이다. 따라서 더 자세한 내용이나 원본 글을 보고 싶은 경우에는 공식 홈페이지를 참고하길 바란다. Processor API를 사용하면 커스텀 프로세서를 정의하고 연결할 수 있으며 State Store와 상호작용할 수도 있다. Processor API를 통해서 임의의 스트림 프로세서를 정의할 수 있으며 이 프로세서를 관련된 State Store와...