clean up 함수

Hyeok·2025년 2월 19일

개념

  • useEffect 내에서 컴포넌트가 언마운트되거나 의존성이 변경될 때 리소스를 정리하는 함수.
  • 주로 디바운싱, 이벤트 리스너 제거, 타이머 취소, API 요청 취소 등 불필요한 리소스를 해제하는 데 사용됨.

사용 목적

  • 메모리 누수 방지: 리소스가 불필요하게 남아있지 않도록 처리.
  • 성능 최적화: 컴포넌트가 사라질 때 불필요한 동작을 방지.
  • 부작용 방지: 예기치 않은 결과를 방지.
import { useState, useEffect } from "react";

function SearchComponent() {
  const [query, setQuery] = useState("");
  const [searchResult, setSearchResult] = useState(null);

  useEffect(() => {
    // 디바운싱: 입력 후 500ms 동안 입력이 없으면 API 요청
    const timer = setTimeout(() => {      
      // 실제로는 여기서 API 호출을 진행할 수 있음
    }, 500);

    // clean up: 새로운 입력이 들어오면 기존 타이머를 취소하고 새로 시작
    return () => clearTimeout(timer);
  }, [query]); // query가 변경될 때마다 실행

  return (
    <div>
      <input
        type="text"
        value={query}
        onChange={(e) => setQuery(e.target.value)}
        placeholder="검색어 입력"
      />
      <p>{searchResult}</p>
    </div>
  );
}
profile
공부하면서 정리한 블로그입니다. 혹시 잘못된 내용이 있다면 댓글로 알려주시면 큰 도움이 됩니다. 감사합니다!

0개의 댓글