개요로컬 LLM, 어떤 모델을 골라야 할까❓로컬 LLM 시대가 본격화되면서 가장 먼저 부딪히는 질문이 있습니다. "내 장비에서 어떤 모델이 실제로 돌아갈까?" 막상 모델을 고르려 하면 선택지가 너무 많습니다. 어떤 모델이 내 환경에서 실제로 잘 돌아가는지는 직접 받아보기 전까지 알기가 어렵습니다. 스펙 표를 봐도 감이 잘 안 오고, 받아보면 생각보다 느리거나 메모리가 부족해서 실행이 안 되기도 합니다. 여기서 이 문제를 해결해주는 기능이 최근에 등장했습니다. 바로 "llmfit"입니다. 본 글에서는 이 llmfit에 대한 기능을 정리하고자 합니다. llmfit이란❓ GitHub - AlexsJones/llmfit: Hundreds of models & providers. One command to f..
개요프로젝트를 시작할 때 엔티티의 날짜 타입으로 뭘 선언할지 고민한 적이 있을 것입니다. 주변 코드나 레퍼런스를 보면 LocalDateTime, ZonedDateTime을 쓰는 경우가 대부분입니다. 그런데 Instant를 알고 난 뒤 한 가지 의문이 생겼습니다. "LocalDateTime이 정말 맞는 선택인가?" 본 글에서는 두 타입의 차이와 어떤 상황에서 무엇을 선택해야 하는지 정리합니다. LocalDateTime이란❓LocalDateTime now = LocalDateTime.now(); LocalDateTime은 날짜와 시간 정보를 가지고 있지만 타임존(TimeZone) 정보는 없는 타입입니다. 이름에 Local이 붙은 이유가 여기 있습니다. "내가 있는 곳의 시간" 을 표현하는 타입이지만,..
개요개인 프로젝트의 마이페이지에서 경로 검색 기능을 개발하던 중, Tmap 지오코딩 API 호출 시 400 Bad Request 에러가 발생했습니다. POI 검색 결과를 그대로 API에 전달하면서 특수문자 인코딩 문제와 POI명/주소 혼용 문제가 원인이었습니다. 본 글에서는 이 문제의 원인 분석과 UX를 고려한 해결 과정을 정리하고자 합니다.🚨 문제 상황사용자가 출발지와 도착지를 입력하고 경로를 검색했을 때, 티맵 지오코딩 API 호출 시 백엔드 서버에서 아래와 같은 에러 로그와 함께 경로 탐색에 실패하는 현상이 발생했습니다.org.springframework.web.reactive.function.client.WebClientResponseException$BadRequest: 400 Bad R..
개요개인 프로젝트를 진행하던 중 마이페이지에서 새로고침 시 로그인 상태가 유실되어 강제로 로그인 페이지로 리다이렉트되는 문제가 발생했습니다. 로그인에 성공한 후 메인 페이지에서는 인증 상태가 정상적으로 유지되었지만, 페이지에서 새로고침을 하면 localStorage에 유효한 토큰이 남아있음에도 불구하고 사용자를 로그아웃시키는 현상이었습니다. 본 글에서는 이러한 문제에 대한 원인 분석과 해결 과정을 기록하고자 합니다. 🚨 문제 상황문제 현상로그인이 성공하여 메인 페이지에서는 인증 상태가 잘 유지되지만, 마이페이지에서 새로고침을 하면 강제로 로그인 페이지로 리다이렉트됨.사용자 경험새로고침할 때마다 다시 로그인해야 하는 치명적인 불편함 발생. 🔍 원인 분석문제의 코드핵심 원인 Zustand의 메모리 기반 ..