개요개인 프로젝트의 마이페이지에서 경로 검색 기능을 개발하던 중, Tmap 지오코딩 API 호출 시 400 Bad Request 에러가 발생했습니다. POI 검색 결과를 그대로 API에 전달하면서 특수문자 인코딩 문제와 POI명/주소 혼용 문제가 원인이었습니다. 본 글에서는 이 문제의 원인 분석과 UX를 고려한 해결 과정을 정리하고자 합니다.🚨 문제 상황사용자가 출발지와 도착지를 입력하고 경로를 검색했을 때, 티맵 지오코딩 API 호출 시 백엔드 서버에서 아래와 같은 에러 로그와 함께 경로 탐색에 실패하는 현상이 발생했습니다.org.springframework.web.reactive.function.client.WebClientResponseException$BadRequest: 400 Bad R..
Trouble Shooting
개요개인 프로젝트를 진행하던 중 마이페이지에서 새로고침 시 로그인 상태가 유실되어 강제로 로그인 페이지로 리다이렉트되는 문제가 발생했습니다. 로그인에 성공한 후 메인 페이지에서는 인증 상태가 정상적으로 유지되었지만, 페이지에서 새로고침을 하면 localStorage에 유효한 토큰이 남아있음에도 불구하고 사용자를 로그아웃시키는 현상이었습니다. 본 글에서는 이러한 문제에 대한 원인 분석과 해결 과정을 기록하고자 합니다. 🚨 문제 상황문제 현상로그인이 성공하여 메인 페이지에서는 인증 상태가 잘 유지되지만, 마이페이지에서 새로고침을 하면 강제로 로그인 페이지로 리다이렉트됨.사용자 경험새로고침할 때마다 다시 로그인해야 하는 치명적인 불편함 발생. 🔍 원인 분석문제의 코드핵심 원인 Zustand의 메모리 기반 ..
개요개인 지도 API 기반 토이 프로젝트인 "안심 맵(Ansim Map)" 을 개발하던 중, TMAP API 사용 과정에서 단일 경로만 반환되는 파라미터 제약 이슈를 발견했습니다. 사용자에게 "최적 경로"와 "안전한 대로 우선 경로"를 모두 제공하여 선택권을 주려는 프로젝트의 핵심 기능이 구현 불가능한 상황이었고, 이를 Spring WebFlux의 Mono.zip을 활용한 병렬 요청 처리로 해결했습니다. 본 글에서는 문제 상황 분석부터 해결 과정, 그리고 실제 코드 적용까지의 트러블 슈팅 전 과정을 정리하고자 합니다.🚨 문제 상황개인 토이 프로젝트에서 TMAP 자동차 경로 API를 사용하던 중, 사용자에게 여러 경로 옵션을 제공할 수 없다는 문제에 직면했습니다.발생한 이슈TMAP API는 한 번의 요청..
문제 상황현재 프로젝트에서 사용자가 보유한 쿠폰을 불러와 결제 시 적용할 수 있는 기능을 개발하던 중, 선택된 쿠폰의 할인률에 따라 결제 금액에서 할인을 계산하는 로직을 구현하고 있었습니다. 위와 같이 사용자가 10% 할인 쿠폰을 선택하여 결제 금액이 20,000원일 때, 기대한 할인액은 2,000원이지만, 실제로는 50원만 할인되는 문제가 발생했습니다. 쿠폰 데이터는 다음과 같은 정보가 포함되어 있었습니다.쿠폰 데이터Coupon: CouponUserResponseDto( couponId=b2e6f1b4-1234-4cb5-8234-8a9e6b78c2c2, promotionId=a1e6f1b4-9187-4cb5-8225-8a9e6b78c2b1, description=10% Discount..