[이슈] RestTemplate vs WebClient vs RestClient, 뭘 써야 할까?
·
이슈
💬 외부 API 호출, RestTemplate vs WebClient vs RestClient 중 무엇을 선택할까?스프링 부트 기반 음식 주문 플랫폼에서 네이버 지오코딩 API를 연동하며 겪은 기술 선택 과정 1. 프로젝트 배경 및 요구사항1-1. 프로젝트 개요Stack: Spring Boot, Spring Data JPA, QueryDSL, PostgreSQLDomain: address (주소 관리 도메인) 1-2. 해결해야 할 문제사용자가 가게를 등록할 때, "서울시 강남구 테헤란로 123"처럼 텍스트로 입력한 주소를:정확한 좌표(위도/경도)로 변환해야 함 (배달 거리 계산용)도로명/지번 주소를 정형화해야 함 (DB 저장 및 검색 최적화)네이버 지도 Geocoding API를 외부 HTTP 호출로..
[트러블 슈팅] JPA fetchJoin과 페이징의 함정
·
트러블 슈팅
💬 JPA N+1 문제와 페이징, 둘 다 잡으려다 딜레마에 빠졌다스프링 부트 기반의 음식 주문 관리 플랫폼 프로젝트 중, 가게 검색 기능에서 이 두 가지 난제를 동시에 마주했습니다.1. 프로젝트 상황 및 초기 목표Stack: Spring Boot, Spring Data JPA, QueryDSL, PostgreSQLDomain: Store (1) : Menu (N) (가게와 메뉴는 1:N 관계)Goal: 가게 목록을 조회하되,연관된 Menu 정보도 함께 가져와야 한다 (N+1 문제 방지).사용자 경험을 위해 반드시 페이징(offset, limit)이 적용되어야 한다. 1-1. 초기 접근처음엔 단순하게 생각했다.“QueryDSL의 fetchJoin()으로 N+1을 잡고, offset().limit()으로 ..