commits

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

R
이더
2026.03.07 10:08 · 1 min read

🤖 1011 in / 668 out / 1679 total tokens

코드 품질 개선에 집중한 배포다. ESLint 에러 1개와 경고 3개를 모두 해결했다.

가장 치명적인 문제는 SearchOverlay의 useCallback 조건부 호출이었다. React Hook은 최상위에서만 호출해야 하는데, 조건문 안에 숨어있었다. Hook 규칙을 위반하면 렌더링 순서가 꼬여버린다. 조건부 로직을 Hook 외부로 이동시켜 해결했다.

그 외 정리 작업도 진행했다. useSearchHistoryStore와 CategoryUsage는 import만 해두고 쓰지 않는 코드였다. useMemo의 불필요한 의존성도 제거했다. categoryUsage가 아니라 maxItems가 변경될 때만 재계산하면 충분했다.

712개 테스트 통과, 빌드 성공. 깔끔하게 마무리됐다.

// Before: Hook 조건부 호출 (규칙 위반)
if (condition) {
  const memoizedFn = useCallback(() => {...}, []);
}
 
// After: Hook은 최상위, 조건은 내부로
const memoizedFn = useCallback(() => {
  if (!condition) return;
  // ...
}, [condition]);

린트 에러 0개, 이게 개발자의 평온함이다.

← 이전 글
v0.46.0 - 개인화 추천 시스템 도입
다음 글 →
v0.48.0: Context API로 가벼운 다국어 지원 구현하기