ESLint any 타입 경고 21개를 모두 해결했다
commitsMidWayDer · b138e94

ESLint any 타입 경고 21개를 모두 해결했다

🤖 1442 in / 604 out / 2046 total tokens v0.52.0에서 @typescript-eslint/no-explicit-any 경고 21개를 전부 제거했다. 이제 코드베이스에 any 타입이 없다. 주요 변경은 명시적 타입 정의다. PersonalizedDetourResult는 개인화 점수가 포함된 결과를, CacheQuery

이더1주 전1 min read0
TypeScriptESLint리팩토링
TypeScript strictness 강화: any 타입 제거 및 v0.52.0 업데이트
commitsMidWayDer · b138e94

TypeScript strictness 강화: any 타입 제거 및 v0.52.0 업데이트

🤖 1442 in / 1790 out / 3232 total tokens 21개의 any 타입 경고를 해결하여 코드의 타입 안전성을 확보했습니다. PersonalizedDetourResult, CacheQuery, LegacyCacheKey 등 신규 인터페이스를 정의하여 캐시 및 개인화 로직을 명시적으로 타입화했습니다. 테스트 코드에 MockSearc

이더1주 전1 min read0
v0.51.0 캐시 UI 통합 및 오프라인 관리 기능 강화
commitsMidWayDer · 5d352c1

v0.51.0 캐시 UI 통합 및 오프라인 관리 기능 강화

🤖 1283 in / 1827 out / 3110 total tokens ResultList에 CacheStatus 컴포넌트를 배치해 캐시 사용 현황을 실시간으로 확인 가능하게 만들었다. 오프라인 상태에서는 캐시 사용 표시를, 온라인 상태에서는 캐시 크기를 표시하도록 로직을 수정했다. SearchOverlay에 캐시 삭제 버튼을 추가해 사용자가 직접

이더1주 전1 min read0
v0.51.0CacheUI
v0.51.0: 캐시 UI 통합 완료
commitsMidWayDer · 5d352c1

v0.51.0: 캐시 UI 통합 완료

🤖 1283 in / 678 out / 1961 total tokens 지난 버전에서 구현해둔 캐시 시스템을 이제야 사용자에게 보여주기 시작했다. 기능만 있고 표시가 없으면 무용지물이니까. CacheStatus 컴포넌트를 ResultList에 추가했다. 오프라인일 땐 "캐시 데이터 사용"을 표시하고, 온라인일 땐 현재 캐시 크기를 보여준다. 사용자가

이더1주 전1 min read0
cacheUIzustand
오프라인 검색 캐시 시스템 구현 (v0.50.0)
commitsMidWayDer · 07ab1cc

오프라인 검색 캐시 시스템 구현 (v0.50.0)

🤖 2680 in / 1674 out / 4354 total tokens localStorage의 용량 한계를 넘어 24시간 TTL의 IndexedDB 캐시 저장소를 구축하여 오프라인에서도 검색이 가능하게 했습니다. 네트워크 우선(Cache-First) 전략을 적용하고 백그라운드 업데이트 기능을 추가했습니다. fake-indexeddb를 활용한 테스트

이더1주 전1 min read0
Dexie.jsIndexedDBCache-First
IndexedDB로 오프라인 검색 캐시 시스템 구축하기
commitsMidWayDer · 07ab1cc

IndexedDB로 오프라인 검색 캐시 시스템 구축하기

🤖 2680 in / 843 out / 3523 total tokens v0.50.0에서 오프라인 검색을 위한 캐시 시스템을 완전히 재설계했다. localStorage 기반의 기존 캐시를 IndexedDB로 마이그레이션하면서 Dexie.js를 도입했다. 가장 큰 변화는 캐시 TTL이다. 기존 30분에서 24시간으로 대폭 늘렸다. IndexedDB는

이더1주 전2 min read0
IndexedDBDexie.js캐시전략
LocaleContext ESLint 에러 해결과 useState lazy initialization
commitsMidWayDer · 34189b8

LocaleContext ESLint 에러 해결과 useState lazy initialization

🤖 794 in / 722 out / 1516 total tokens v0.49.0에서 LocaleContext의 ESLint set-state-in-effect 경고를 해결했다. 기존에는 useEffect 내부에서 localStorage 값을 읽어 setState를 호출하는 패턴이었다. 이는 React 팀에서 권장하지 않는 방식이라 ESLint가

이더1주 전2 min read0
ReactESLint성능최적화
v0.48.0: Context API로 가벼운 다국어 지원 구현하기
commitsMidWayDer · 54bbe84

v0.48.0: Context API로 가벼운 다국어 지원 구현하기

🤖 2306 in / 875 out / 3181 total tokens Context API 기반으로 경량 i18n 시스템을 직접 구현했다. react-i18next 같은 라이브러리 없이 번들 크기를 아끼면서도 충분한 기능을 갖췄다. LocaleContext와 useLocale 훅으로 현재 언어 상태를 관리하고, localStorage에 사용자 선택을

이더1주 전1 min read0
i18nContext APIReact
v0.48.0 - 다국어 지원 (i18n) 구현
commitsMidWayDer · 54bbe84

v0.48.0 - 다국어 지원 (i18n) 구현

🤖 2306 in / 1900 out / 4206 total tokens 다국어 지원 기능을 경량 Context API로 구현하여 한국어/영어 전환 기능을 추가합니다. Context API 기반의 경량 i18n 라이브러리를 구현하고 LocaleContext와 useLocale 훅을 제공합니다. LanguageSelector 컴포넌트를 통해 모바일과 데

이더1주 전1 min read0
i18nContextLocalization
v0.47.0: ESLint 0 달성, React Hook 규칙 준수
commitsMidWayDer · a1fab52

v0.47.0: ESLint 0 달성, React Hook 규칙 준수

🤖 1011 in / 668 out / 1679 total tokens 코드 품질 개선에 집중한 배포다. ESLint 에러 1개와 경고 3개를 모두 해결했다. 가장 치명적인 문제는 SearchOverlay의 useCallback 조건부 호출이었다. React Hook은 최상위에서만 호출해야 하는데, 조건문 안에 숨어있었다. Hook 규칙을 위반하면

이더1주 전1 min read0
ESLintReact Hooks코드품질