전체 글 27

[Redisson] default codec 사용은 지양하자

현업에서 사용하던 redisson 버전을 올렸는데, 직렬화/역직렬화 관련 오류를 만나신 적 있나요?오늘은 redisson 버전을 올리면서 default codec 관련 이슈를 겪은 경험을 기반으로 관련된 유의사항을 공유하고자 합니다.Redisson 의 default codec은 종종 바뀐다redisson changelog 에서 살펴보면 3번이나 default codec이 바뀐 것을 볼 수 있습니다.[참고] redisson changeloghttps://github.com/redisson/redisson/blob/master/CHANGELOG.md3.10.0 : changed to FSTCodec3.13.0 : changed to MarshallingCodec3.19.0 : changed to Kryo5C..

개발자 포포 2025.02.16

[Hibernate] 쓰기 지연(write-behind) 동작 순서와 예외 케이스

Hibernate의 쓰기 지연하이버네이트의 “쓰기지연” 을 제공합니다. 쓰기지연은 다음과 같이 동작합니다.하이버네이트는 영속성 컨텍스트에 변경이 발생했을때, 즉시 쿼리를 DB로 날리지 않고, ActionQueue 라는 내부 구조에 쿼리 수행정보를 저장flush 시점에 ActionQueue 저장된 SQL 쿼리들을 실행이를 통해 애플리케이션과 DB 간 효율적인 네트워크 통신과 최적화된 실행의 장점이 있습니다.jdbc batch를 이용해 쿼리들을 건건이 DB에 보내지 않고 합쳐서 전송동일 엔티티, 동일 필드에 대한 여러 변경사항이 하나의 트래젝션 내에서 이뤄진 경우, 중간에 불필요한 update 쿼리는 제외하고 마지막 상태에 대한 update 쿼리만 전송이런 쓰기 지연에는 내부적으로 동작 순서가 있습니다.동작..

개발자 포포 2025.01.05

[Hibernate] Lazy Loading이 포함된 Response 유의

이 글은 과거에 운영하던 블로그에서 옮겨온 글 입니다. (2021.11.21. 작성됨)요약jackson 라이브러리로 하이버네이트 프록시 객체를 serialize 할 경우 오류가 발생합니다.1) 프록시 객체를 가져오지 않도록 join fetch를 사용하거나 2) 엔티티는 DTO로 모두 변환하여 Response body로 전달하면 문제를 피할 수 있습니다.이번 포스팅에서는 Lazy Loading이 포함된 엔티티를 ResponseEntity 응답 정보로 사용할때 유의 해야할 점을 다루어보려 합니다. No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor and no properties discovered to c..

개발자 포포 2024.09.17