개요개인 프로젝트의 마이페이지에서 경로 검색 기능을 개발하던 중, Tmap 지오코딩 API 호출 시 400 Bad Request 에러가 발생했습니다. POI 검색 결과를 그대로 API에 전달하면서 특수문자 인코딩 문제와 POI명/주소 혼용 문제가 원인이었습니다. 본 글에서는 이 문제의 원인 분석과 UX를 고려한 해결 과정을 정리하고자 합니다.🚨 문제 상황사용자가 출발지와 도착지를 입력하고 경로를 검색했을 때, 티맵 지오코딩 API 호출 시 백엔드 서버에서 아래와 같은 에러 로그와 함께 경로 탐색에 실패하는 현상이 발생했습니다.org.springframework.web.reactive.function.client.WebClientResponseException$BadRequest: 400 Bad R..
분류 전체보기
개요개인 프로젝트를 진행하던 중 마이페이지에서 새로고침 시 로그인 상태가 유실되어 강제로 로그인 페이지로 리다이렉트되는 문제가 발생했습니다. 로그인에 성공한 후 메인 페이지에서는 인증 상태가 정상적으로 유지되었지만, 페이지에서 새로고침을 하면 localStorage에 유효한 토큰이 남아있음에도 불구하고 사용자를 로그아웃시키는 현상이었습니다. 본 글에서는 이러한 문제에 대한 원인 분석과 해결 과정을 기록하고자 합니다. 🚨 문제 상황문제 현상로그인이 성공하여 메인 페이지에서는 인증 상태가 잘 유지되지만, 마이페이지에서 새로고침을 하면 강제로 로그인 페이지로 리다이렉트됨.사용자 경험새로고침할 때마다 다시 로그인해야 하는 치명적인 불편함 발생. 🔍 원인 분석문제의 코드핵심 원인 Zustand의 메모리 기반 ..
개요개인 지도 API 기반 토이 프로젝트인 "안심 맵(Ansim Map)" 을 개발하던 중, TMAP API 사용 과정에서 단일 경로만 반환되는 파라미터 제약 이슈를 발견했습니다. 사용자에게 "최적 경로"와 "안전한 대로 우선 경로"를 모두 제공하여 선택권을 주려는 프로젝트의 핵심 기능이 구현 불가능한 상황이었고, 이를 Spring WebFlux의 Mono.zip을 활용한 병렬 요청 처리로 해결했습니다. 본 글에서는 문제 상황 분석부터 해결 과정, 그리고 실제 코드 적용까지의 트러블 슈팅 전 과정을 정리하고자 합니다.🚨 문제 상황개인 토이 프로젝트에서 TMAP 자동차 경로 API를 사용하던 중, 사용자에게 여러 경로 옵션을 제공할 수 없다는 문제에 직면했습니다.발생한 이슈TMAP API는 한 번의 요청..
개요웹 애플리케이션을 개발하다 보면 컨트롤러에서 반복적으로 수행하는 작업들이 있습니다. 헤더에서 토큰을 꺼내서 파싱쿠키나 세션에서 사용자 정보 가져오기특정 헤더 값을 객체로 변환하기특히 스프링 시큐리티를 사용할 때, 인증된 사용자 정보가 SecurityContext의 Principal에 담기는데, 이를 꺼내는 작업도 매번 반복됩니다. 이런 코드가 모든 컨트롤러 메서드마다 반복된다면 코드 중복이 심해지고 유지보수가 어려워집니다. 이때 사용할 수 있는 것이 바로 HandlerMethodArgumentResolver입니다. 오늘은 이 HandlerMethodArgumentResolver에 대해서 공부한 내용을 정리하고자 합니다. HandlerMethodArgumentResolver란❓HandlerMeth..