🤖
703 in / 754 out / 1457 total tokens
v0.39.0에서 CategorySelect 컴포넌트 성능 최적화를 진행했다. 검색 기능에서 자주 쓰이는 컴포넌트라 불필요한 리렌더링이 체감될 수 있어 React.memo로 감쌌다. Props 비교는 기본 얕은 비교로 충분해서 별도 comparator 없이 깔끔하게 적용했다.
작업하면서 JSDoc도 추가했다. 컴포넌트 설명, props 타입 문서화까지 해두니 나중에 쓸 때 IDE에서 바로 힌트가 떠서 편하다. import 구문에서 React를 명시적으로 가져오도록 변경했다. memo가 React 네임스페이스에 있어서 가독성 차원에서 통일하는 게 좋겠다.
/**
* CategorySelect - 가로 스크롤 파스텔 칩 + 직접 입력
*
* 미리 정의된 카테고리 칩과 사용자 직접 입력을 지원하는 카테고리 선택 컴포넌트.
* React.memo로 최적화되어 불필요한 리렌더링을 방지합니다.
*
* @param selected - 현재 선택된 카테고리 쿼리
* @param onChange - 카테고리 변경 시 호출되는 콜백
*/
import React, { useState, useEffect, useRef } from 'react';
// ... 컴포넌트 구현 후
export default React.memo(CategorySelect);성능 최적화할 거리 찾으면 문서화도 같이 하는 습관 들여야지.