Commits
GitHub 커밋 기반으로 자동 생성된 개발 기록
테스트 환경에서 navigator undefined 에러 해결
🤖 598 in / 1793 out / 2391 total tokens useOnlineStatus 훅 테스트 돌리는데 navigator is not defined 에러가 터졌다. Node.js 환경인 Jest에서 브라우저 전역 객체인 navigator에 접근하려 해서 발생한 문제다. getSnapshot 함수 초입에 typeof 체크를 추가했다.
useOnlineStatus 훅, useSyncExternalStore로 리팩토링
🤖 741 in / 1474 out / 2215 total tokens useOnlineStatus 훅에서 useEffect 내 동기 setState 호출로 인한 ESLint 에러를 해결했다. 기존엔 useState로 초기값 true를 설정하고, useEffect에서 navigator.onLine으로 동기 업데이트 후 이벤트 리스너를 등록하는 방식이
검색 자동완성 드롭다운이 배경과 겹쳐 보이던 문제 수정
🤖 1022 in / 818 out / 1840 total tokens 출발지/도착지 검색할 때 자동완성 드롭다운이 배경이랑 섞여서 구분이 안 됐다. 입력 필드도 배경이 투명해서 경계가 모호했고. AddressInput 컴포넌트에서 드롭다운 z-index를 50에서 100으로 올렸다. 테두리도 1px에서 2px로 두껍게, 그림자도 강화했다. 입력 필
모바일 UX/UI 심화 최적화: GPU 가속과 접근성 강화
🤖 2335 in / 1232 out / 3567 total tokens 모바일 경험을 개선했다. GPU 가속으로 애니메이션을 부드럽게, 접근성으로 더 많은 사용자에게. GPU 가속을 전면 적용했다. will-change, translate3d 조합으로 레이어를 분리했다. 바텀시트, 스와이프 카드, 검색 오버레이에 gpu-accelerate 클래스를
모바일 UX 개선: 터치 타겟과 가독성 확보
🤖 1410 in / 1100 out / 2510 total tokens 모바일에서 터치하기 어려운 버튼과 입력 필드를 개선했다. 사용자 피드백으로 접수된 모바일 UI/UX 이슈를 해결했다. 버튼은 48x48px 최소 크기를 맞췄다. 스왑 버튼은 40x40에서 48x48로, CompactCard의 액션 버튼은 32x32에서 44x44로 확대했다. 최
ESLint 0 errors, 0 warnings 달성 및 v0.66.0 릴리즈
🤖 1908 in / 1977 out / 3885 total tokens v0.66.0으로 업데이트하며 11개 파일의 ESLint 오류와 경고를 모두 해결했습니다. 특히 RouteNameDialog에서 setState in effect 경고를 해결하기 위해 eslint-disable 주석을 추가하고, NotificationSettings의 함수를 us
ESLint 0 errors, 0 warnings 달성
🤖 1908 in / 603 out / 2511 total tokens v0.66.0에서 코드 품질 개선 작업을 완료했다. ESLint 에러와 워닝을 모두 제거해서 깨끗한 린트 상태를 달성했다. NotificationSettings.tsx에서 구독 관련 함수들을 useCallback으로 래핑해서 불필요한 리렌더링을 방지했다. RouteNameDial
SavedRoutesList 동적 import로 초기 로딩 속도 개선
🤖 770 in / 845 out / 1615 total tokens SearchOverlay 컴포넌트에서 SavedRoutesList를 동적 import로 변경했다. Next.js의 dynamic 함수를 활용해 초기 번들 크기를 줄였고, 로딩 중에는 스켈레톤 UI를 표시하도록 했다. ssr: false 옵션으로 클라이언트 전용 렌더링을 적용해 불필요
SavedRoutesList 동적 import로 초기 로딩 속도 최적화
🤖 770 in / 1276 out / 2046 total tokens SearchOverlay에서 사용하던 SavedRoutesList를 Next.js dynamic import로 변경했습니다. 사용하지 않는 store import를 제거하고 로딩 스켈레톤을 구현했습니다. 초기 번들 크기를 줄여 사용자 경험을 개선했습니다.
캐시 TTL 7일 연장으로 오프라인 경험 개선
🤖 840 in / 1586 out / 2426 total tokens 검색 결과 캐시의 유효기간을 24시간과 30분에서 모두 7일로 늘려 장기간 데이터를 저장합니다. getCacheStats 함수에 ttlDays 필드를 추가하여 TTL 설정을 명시적으로 관리합니다. 766개 테스트를 통과하고 빌드에 성공해 안정성을 확보했습니다.