작성
·
74
0
안녕하세요! 캐시관련 질문 사항이 있습니다!
현재, 강의 내용에선, react query
를 사용한 클라이언트측 캐시와, unstable_cached
를 사용한 서버 캐시를 둘다 같은 하나의 데이터에 적용하신 모습을 확인하였습니다.
궁금증은, 현재 블로그 목록 조회는 두개 캐시 기법이 모두 적용되어 있는데, 둘 중 하나만 캐시를 해 놓아도 될 것 같다 라는 생각이 드는데, 이게 맞는지 궁금합니다.
혹시, 하나만 선택해야 된다면 이번 블로그 목록 케이스에서는 어떤 방식의 캐시를 적용하시는걸 추천하시나요?
답변 2
1
안녕하세요~! 🙂
React Query는 클라이언트 측 캐싱으로, 브라우저 메모리에 데이터를 저장합니다. 사용자가 페이지를 이동하더라도 다시 같은 페이지로 돌아올 때 서버에 다시 요청하지 않고 캐시된 데이터를 보여줄 수 있습니다.
unstable_cached는 Next.js의 서버 사이드 캐싱 기능으로, 서버 메모리에 데이터를 저장합니다. 여러 사용자의 요청이 서버에 들어올 때 매번 데이터베이스 쿼리를 실행하지 않고 캐시된 결과를 재사용할 수 있습니다.
이처럼 캐시는 어떠한 상황에서 사용하느냐에 따라 달라질 수 있습니다.
만약 하나만 선택해야 한다면, 블로그 목록 조회 같은 경우에는 용도에 따라 달라질 수 있습니다:
unstable_cached 선택 시:
장점: 모든 사용자가 빠른 응답을 받습니다(첫 방문자 포함).
적합한 경우: 트래픽이 많고, 데이터가 자주 변경되지 않으며, SEO가 중요한 경우
React Query 선택 시:
장점: 사용자 경험이 매끄럽고, 페이지 간 전환이 빠릅니다.
적합한 경우: 사용자 상호작용이 많고, 데이터가 자주 변경되는 경우
개인적으로는 블로그 목록과 같이 여러 사용자가 접근하는 공통 데이터의 경우, unstable_cached를 우선 적용하는 것이 서버 자원을 효율적으로 사용하는 방법이라고 생각합니다.
0
안녕하세요, 인프런 AI 인턴입니다. BeakGwa님.
캐시 관련 질문을 해주셨네요. React Query
와 unstable_cached
를 동시에 사용하는 경우와 그에 대한 선택 기준에 대한 것 같습니다. 두 가지 캐싱 기법을 모두 적용한 사례를 설명드리겠습니다.
React Query:
unstable_cached:
기업의 요구사항에 따라 다르게 고려될 수 있겠지만, 일반적으로 유저가 많고 데이터 요청이 빈번한 SPA(Single Page Application)의 경우 클라이언트 캐시인 React Query
가 더 적합할 수 있습니다. 이는 사용자 경험을 개선하고 즉각적인 반응성을 제공하기 때문입니다. 반면, SEO가 중요한 정적 사이트라면 unstable_cached
등 서버 측 캐시 전략도 충분한 가치가 있습니다.
블로그 목록처럼 데이터가 자주 변경되지 않으면서 여러 사용자가 접근하는 경우에는 unstable_cached
를 통해 서버에서 발생하는 부하를 줄이는 것도 좋은 선택일 수 있습니다. 특히, SEO가 중요한 경우 서버 캐싱 사용이 맞을 수 있습니다.
질문자님의 구체적인 상황에 따라 다음의 URL에서 추가적인 설명을 참조하실 수 있습니다:
- 서버/클라이언트 컴포넌트에 대한 질문과 답변
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.