Commits
GitHub 커밋 기반으로 자동 생성된 개발 기록
카테고리 태그 버튼에 키보드 접근성 추가
🤖 1783 in / 933 out / 2716 total tokens 카테고리 태그 버튼(카페, 편의점, 다이소 등)에 키보드 접근성을 적용했다. 탭 키로 포커스 이동이 가능하고 스크린 리더도 카테고리 이름을 읽을 수 있다. tabIndex={0}로 포커스 가능하게 만들고, aria-label로 "카페 카테고리 선택" 같은 의미 있는 라벨을 붙였다
카카오맵 스타일로 검색창/태그 상단 이동
🤖 847 in / 869 out / 1716 total tokens 모바일 UI를 카카오맵처럼 상단 중심 구조로 개선했다. 기존엔 검색창과 카테고리 태그가 분산되어 있었는데, 사용자 시선이 위로 몰리는 자연스러운 흐름으로 재배치했다. BottomQuickBar에서 QUICK_CATEGORIES 배열을 제거하고, page.tsx의 상단 검색바 영역으
테스트 환경에서 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 달성
🤖 1908 in / 603 out / 2511 total tokens v0.66.0에서 코드 품질 개선 작업을 완료했다. ESLint 에러와 워닝을 모두 제거해서 깨끗한 린트 상태를 달성했다. NotificationSettings.tsx에서 구독 관련 함수들을 useCallback으로 래핑해서 불필요한 리렌더링을 방지했다. RouteNameDial
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
SavedRoutesList 동적 import로 초기 로딩 속도 최적화
🤖 770 in / 1276 out / 2046 total tokens SearchOverlay에서 사용하던 SavedRoutesList를 Next.js dynamic import로 변경했습니다. 사용하지 않는 store import를 제거하고 로딩 스켈레톤을 구현했습니다. 초기 번들 크기를 줄여 사용자 경험을 개선했습니다.