Taeseong Resume

Example

What I did.

  • 검색창, 맞춤 검색어, 트렌딩 이슈, 연관 검색어, 검색 결과를 제공하는 종합 검색 페이지를 구현했습니다

  • 검색 성능 최적화를 위해 커스텀 useDebounce 훅을 개발했습니다. 이 훅은 사용자 입력 후 일정 시간(150ms)이 지난 후에만 API 요청을 보내도록 하여 불필요한 서버 호출을 줄이고 애플리케이션의 성능을 향상시켰습니다.

* 예시 코드입니다.

import { useState, useEffect, useRef } from "react";

const useDebounce = (value, delay = 150) => {
  const [debouncedValue, setDebouncedValue] = useState(value);
  const timeoutRef = useRef(null);

  useEffect(() => {
    timeoutRef.current = setTimeout(() => setDebouncedValue(value), delay);

    return () => clearTimeout(timeoutRef.current);
  }, [value, delay]);

  return debouncedValue;
};

// 사용 예시
const isSearchEnd = question !== null;
const isSearching = searchContent !== "" && !isSearchEnd;
const beforeSearch = !isSearchEnd && !isSearching;
const debounceSearchContent = useDebounce(searchContent, 150);