TIL,일일 회고

·TIL,일일 회고
개요프로젝트에서 외부 REST API와 통신할 때 Feign Client를 사용하여 API를 호출했습니다.  GET, POST, DELETE 등은 문제없이 동작했으나, PATCH 메서드를 호출하려고 하던 중 에러가 발생하는 상황을 겪었습니다. Feign에서는 기본적으로 PATCH를 바로 지원하지 않으며, 이를 처리하려면 약간의 추가 설정이 필요하다는 사실을 알게되었습니다. java.net.ProtocolException: Invalid HTTP method: PATCH PATCH 메서드를 그대로 사용하게 된다면 위와 같은 유효하지 않은 HTTP method라는 에러가 발생합니다.  해결 방법해결방법은 Apache HttpClient나 OkHttp 방법이 있습니다.  Apache HttpClient1. 의..
·TIL,일일 회고
1. 문제 상황ERROR: value too long for type character varying(255)MSA 환경에서 FeignClient를 통해 HubPath 애플리케이션이 AI 애플리케이션에 최적 경로를 요청하는 로직에서 "value too long for type character varying(255)" 오류가 발생했습니다.해당 로직은 출발 허브 ID와 도착 허브 ID를 받아 경로 리스트를 생성하고, 이를 AI에 전송하여 최적의 경로를 요청하는 구조입니다.2. 문제 원인import jakarta.persistence.Lob;public class AiRequestDto { // 다른 필드들... private String question; // getter, sett..
·TIL,일일 회고
1. 문제 상황처음에 구현된 로직에서는 HubPath를 조회할 때 관련된 Hub 정보를 개별적으로 쿼리하여 N+1 문제가 발생했습니다.특히, 각 HubPath마다 출발 허브와 도착 허브에 대해 추가 쿼리가 실행되어 성능 저하가 일어났습니다.초기 쿼리 로그Hibernate: select h1_0.hub_id,... from p_hubs h1_0 where h1_0.hub_id=? and not(h1_0.is_deleted)Hibernate: select h1_0.hub_id,... from p_hubs h1_0 where h1_0.hub_id=? and not(h1_0.is_deleted)Hibernate: select hp1_0.hub_path_id,... from p_hub_paths hp1_0 joi..
·TIL,일일 회고
개요JPA를 사용하다보면 가장 흔하게 발생하는 문제가 바로 "N+1"문제입니다. N+1문제를 해결하기 위한 방법은 여러가지이지만 주로 Fetch Join을 사용하고는 합니다. 본 글에서는 왜 많은 방법중에서 Fetch Join을 주로 사용하는지에 대해서 알아본 내용을 정리하고자 합니다. Fetch Join의 장점1. 즉시 로딩과 명시적 제어Fetch Join은 JPQL 쿼리에서 명시적으로 사용되기 때문에, 어떤 연관 데이터를 즉시 로딩할지 명확하게 정의할 수 있습니다. 이는 @EntityGraph나 @BatchSize와 같은 방법들에 비해 제어가 더 직관적입니다.SELECT h FROM HubPath h JOIN FETCH h.departureHub JOIN FETCH h.arrivalHub 위와 같이 ..
지누박
'TIL,일일 회고' 카테고리의 글 목록 (27 Page)