✔️ 서비스 워커 캐시 문제로 배포가 반영되지 않는 문제

✔️ tanstack query key 사용으로 즉각적인 데이터 변화 반영이 되지 않는 문제

✔️ 메인페이지 팔로우/언팔로우 문제

1. 메인페이지 팔로우/언팔로우 초기값 문제

```jsx
const { data: myFollowingData } = useGetFollowing({ member_id: user.user_id });
const { mutate: mutateFollow } = usePatchFollow({ member_id: user.user_id });
const { mutate: mutateUnFollow } = useDeleteFollow({ member_id: user.user_id });

const [isFollow, setIsFollow] = useState(() =>
  Boolean(myFollowingData?.data.some((f) => f.following_id === prompter.user_id)),
);

const handleFollow = () => {
  if (isFollow) {
    mutateUnFollow({ member_id: prompter.user_id });
  } else {
    mutateFollow({ member_id: prompter.user_id });
  }
  setIsFollow((prev) => !prev);
};
```

- 문제 상황
    
     isFollow의 상태를 useState를 이용해 관리하며 자신의 팔로잉 목록을 불러오는 useGetFollowing 훅을 이용하여 나의 팔로잉 목록 유저 아이디와 프롬프터의 아이디를 비교해 팔로우 / 언팔로우 상태를 관리하도록 구현하였다.

2. 팔로우/언팔로우 상태 변화 미반영 문제

  const { data: myFollowingData } = useGetFollowing({ member_id: user.user_id });

  const isFollow = Boolean(myFollowingData?.data.some((f) => 
    f.following_id === prompter.user_id));

  const { mutate: mutateFollow } = usePatchFollow({ member_id: prompter.user_id });
  const { mutate: mutateUnFollow } = useDeleteFollow({ member_id: prompter.user_id });

  const handleFollow = () => {
    if (isFollow) {
      mutateUnFollow({ member_id: prompter.user_id });
    } else {
      mutateFollow({ member_id: prompter.user_id });
    }
  };

3. Optimistic Update를 활용한 문제 해결