💡최초 구현: useEffect + useState 조합

처음 데이터를 가져오기 위해서 useEffect + useState 조합을 사용했었다.

// useEffect + useState 방
useEffect(() => {
  setIsLoading(true)
  usingRoomUserList()
    .then(data => setMatchingList(data))
    .catch(err => console.error(err))
    .finally(() => setIsLoading(false))
}, [])

제일 일반적으로 많이 사용하는 방법이긴 하지만 몇가지 아쉬운 점이 있었다.

반복적인 API 요청과 로딩 상태 관리 코드를 줄이고, 더 안정적이고 예측 가능한 서버 상태 관리 구조를 만들기 위해 useEffect 방식에서 TanStack Query 기반 구조로 리팩토링하게 되었다

🔁 리팩토링 목표

  1. 코드 간결성
  2. 자동 로딩·에러 관리
  3. 캐싱 및 백그라운드 업데이트
  4. 전역 상태 공유