Spring
-
[Spring Kafka] 컨슈밍과 관련된 구성 요소 살펴보기개발자 라이프/카프카 2021. 8. 1. 23:49
들어가며 스프링 카프카 프로젝트는 스프링 프레임워크 내에서 카프카를 더욱 손쉽게 사용할 수 있도록 지원하는 프로젝트입니다. 그래서 기존 카프카의 프로듀서, 컨슈머, 스트림 어플리케이션 구성을 스프링 프레임워크 내에서 간단하게 정의하고, 구현할 수 있도록 합니다. 이번 글은 스프링 카프카에서 컨슈밍과 관련된 구성 요소들을 간단히 살펴봅니다. 컨슈밍과 관련된 구성 요소 살펴보기 MessageListenerContainer Spring Kafka에선 MessageListenerContainer를 설정하여 컨슈머를 구성합니다. 그리고 실제 동작은 MessageListener 구현체를 MessageListenerContainer 설정에 제공하거나, 처리와 관련된 함수에 @KafkaListener 어노테이션을 붙여..
-
JPA 네이티브 쿼리와 하이버네이트 1차 캐시개발자 라이프 2020. 1. 14. 21:46
들어가며 Spring에서 제공하는 JPA(Java Persistent Api)는 특정 키워드로 간편하게 쿼리를 생성해주는 쿼리 메소드(Query Method)를 제공해준다. 또한 사용자가 직접 쿼리를 작성하는 네이티브 쿼리(Native Query) 방식도 지원한다. 이번 글은 JPA의 네이티브 쿼리 방식으로 쿼리를 사용할 때, 하이버네이트 1차 캐시와 관련하여 발생할 수 있는 이슈에 대해 다뤄본다. JPA 네이티브 쿼리와 하이버네이트 1차 캐시 하이버네이트 1차 캐시 (Hibernate first-level cache) 데이터베이스와 커넥션을 맺고 조회하여 결과를 가져오는 과정은 매우 무거운 과정이다. 이런 무거운 과정을 줄이고 성능을 향상하기 위해 하이버네이트는 1차, 2차 캐시를 제공한다. 하이버네이..
-
Attribute Converter 적용 후기개발자 라이프 2019. 7. 21. 22:30
도메인의 자유를 위하여! Attirubute Converter는 무엇인가? 후기를 먼저 남기기 전에 Attribute Converter가 무엇인지 간단히 알아보자. Attribute Converter는 JPA 2.1부터 적용되었으며, 이름 그대로 DB와 엔티티 객체 사이에서 컬럼(속성)을 변환시켜주는 녀석이다. 인터페이스 형태로 제공이 되기 때문에 별도의 클래스로 구현해서 변환에 적용해야 한다. 구현이 필요한 메서드 명이 다음처럼 매우 직관적이기 때문에 이해하기도 쉽고 부담이 크지 않다. 다음 인터페이스를 구현하고, Entity 속성에 @Converter(*. class)만 명시해주면 된다. // Entity 속성 타입과 DB 컬럼의 타입을 파라미터로 받는다. public interface Attribu..