-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
refactor-fe: Tanstack Query 데이터 캐싱 정책 변경 #947
Conversation
1731380118.748409 |
1731380118.955759 |
1731380173.979059 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
러기 고생하셨어요. 말씀대로 gcTime을 0으로 두는 건 Tanstack Query의 이점을 버리는 방식이어서, 이 방법 밖에는 없는 건가 하는 생각을 계속 했었어요. 팀 블로그에 올려주신 글을 참고하니 수정해주신 내역에 대한 이해가 잘 되었어요.
일단 로컬 환경에서는 문제 없이 잘 돌아가는 것 같습니다. Approve 드리고, beta와 운영 환경에서도 동일하게 잘 동작하길 기대합니다. 감사합니다 🙏🏼
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
러기, 방법을 알아보느라 고생하셨습니다~ 현재 변경사항에 대해서는 이해를 했기 때문에 approve 드립니다.
시도했던 방법 중 정적 라우팅으로 변경하는 방안을 말씀해주셨는데, '정적 라우팅' 자체는 path parameter를 이용하지 않는 고정된 라우팅을 의미하는 단어로 알고 있어요. 그래서 정적 라우팅으로 어떻게 문제를 해결할 수 있는 건지 잘 이해하지 못했습니다. 이 부분은 만나서 이야기 해봐요~
@@ -114,6 +116,7 @@ export default function ErrorPage() { | |||
} else if (error instanceof ApiError) { | |||
status = error.statusCode; | |||
if (status === 401) { | |||
queryClient.clear(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
gcTime 설정보다 이게 더 범용성 있는 로직이기 때문에 적절한 대처 같아요.👍
어짜피 401 에러가 발생하면 다시 로그인을 해야 하므로 모든 쿼리의 캐시를 지우는 것도 무리 없어 보입니다.
목적
데모데이때 발생한 에러는 다음과 같습니다.
원인은 다음과 같습니다.
[임시방법] 해당 문제를 해결하기 위한 방법으로 데모데이 때 발생한 문제를 해결한 방법은 다음과 같습니다.
gcTime을 0으로 설정하여 캐시데이터를 사용하지 않는다.
문제: 이전 방법은 Tanstack Query의 캐싱 기능을 사용하지 못한다는 문제가 생깁니다. 이는 Tanstack Query의 강력한 기능을 사용하지 않는 것이라 생각하고, 렌더링에서의 사용성 역시 떨어뜨리는 문제라 판단했습니다.
따라서 다음과 같은 문제 해결방법을 생각했습니다.
해결
[해당 방법을 선택하여 구현하였습니다] 데이터 흐름에 맞춰 적절히 데이터 Clear해주기.
에러 페이지에서 tanstack Query에서 사용하고 있는 데이터를 clear해준다.
로그인, 자동 로그인시 동적 라우팅으로 /dashboard 라우트로 이동하는 코드를 정적 라우팅으로 변경한다.
해당 방법을 통해 문제를 해결할 수 있었지만, 기존 로그인 페이지에서 이미 가지고 있는 리소스를 재요청하는 문제가 있었습니다.
작업 세부사항
참고 사항
REFAC_TANSTACK_CACHE
closes #946