개발/문제 해결3 OpenFeign에서 Java Record 사용 시 직렬화 실패 문제 OpenFeign에서 Java Record 사용 시 직렬화 실패 문제문제 상황OpenFeign 클라이언트에서 @SpringQueryMap과 함께 Record를 사용하다가 문제가 발생했습니다:예시코드)@FeignClient(...)public interface NewsClient { @GetMapping("/news") Response getNews(@SpringQueryMap NewsRequest request);}public record NewsRequest( int limit, Integer offset, String keyword) {}쿼리 파라미터가 누락되어 서버로 전송됨원인OpenFeign GitHub Issue #1927과 Spring Cloud OpenFeign #.. 2025. 4. 1. OpenSearch 페이징 문제 및 해결 안녕하세요. 이번에는 OpenSearch를 사용하면서 겪었던 페이징 관련 이슈와 그 해결 과정에 대해 공유드리고자 합니다.문제 상황OpenSearch를 통해 데이터를 페이징하는 과정에서 다음과 같은 문제가 발생하였습니다:실제 데이터는 10,000개 이상 존재하나, size 10 기준으로 1,000 페이지(총 10,000개)까지만 데이터가 표시되었습니다.10,000개 이상의 데이터는 조회가 불가능한 상황이었습니다.결과적으로 페이징 처리 중 데이터 유실이 발생하였습니다.문제 해결 과정1차 시도: max_result_window 설정 확인먼저 Elasticsearch의 기본 검색 제한인 10,000건 제한과 관련이 있을 것으로 판단하여 max_result_window 설정을 확인해보았습니다.GET {index.. 2025. 2. 27. JPA Custom Query Method 사용 시 트랜잭션 이슈 및 해결 문제 상황JPA Repository에서 커스텀 쿼리 메소드로 데이터를 삭제하려 했을 때 트랜잭션 관련 예외가 발생하였습니다.구체적으로는 No EntityManager with actual transaction available for current thread 에러가 발생하였습니다.특이한 점은 JPA에서 기본으로 제공하는 delete 메소드들(deleteById, delete 등)은 정상적으로 동작하였으나, 커스텀 메소드에서만 문제가 발생하였습니다.원인JPA의 SimpleJpaRepository에서 제공하는 기본 삭제 메소드들에는 @Transactional 어노테이션이 기본적으로 포함되어 있습니다.실제 SimpleJpaRepository의 구현부를 보면 다음과 같이 모든 삭제 메소드에 @Transacti.. 2025. 2. 24. 이전 1 다음