inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Next + React Query로 SNS 서비스 만들기

서버 컴포넌트에서 데이터를 가져오는게 좋은 상황

334

j44s11

작성한 질문수 14

0

몇주간 계속 공부하면서 고민을 해봤는데... 결과적으로 서버 컴포넌트에서 데이터를 가져왔을때 좋은 상황이 어떤 경우인지 모르겠습니다. 서버 컴포넌트에서 데이터를 가져왔을때, 그 데이터는 SEO에 반영이 되나요? NEXTJS의 공식문서에서는 서버 컴포넌트가 유리한 상황이 'data fetch' 라고 되어 있습니다. 하지만 지난번에 질문했을때 클라이언트 컴포넌트에서 데이터를 가져오는게 보통 더 좋다는 답변을 받았었습니다.

 

클라이언트에서 데이터를 가져오는게 좋은 상황과, 서버에서 데이터를 가져오는게 좋은 상황을 구분을 못하겠어서 조언을 구하고자 질문 드립니다.

react next.js react-query next-auth msw

답변 2

0

제로초(조현영)

한 가지 더 추가하자면, 서버컴포넌트에서 데이터를 불러왔을 때는 클라이언트에 데이터를 불러오는 코드는 전송되지 않습니다. 데이터를 불러온 결과물과 컴포넌트가 합쳐져 HTML으로 만들어져 HTML만 클라이언트 컴포넌트로 전송됩니다. 데이터가 거의 바뀌지 않는다면 이 결과물을 캐싱하여 빠르게 클라이언트로 전달할 수 있습니다.

캐싱을 잘 활용할 수 있다면 서버에서 데이터를 불러와서 클라이언트에게 캐싱된 페이지를 빠르게 전달하는 게 유용하긴 하겠죠. 안 그러면 클라이언트가 HTML, JS 따로따로 받아온 후에 다시 데이터를 백엔드로 요청해야 하니까 느릴 겁니다.

0

제로초(조현영)

벡엔드 서버를 따로 마련하지 않는 상황에서는 api route를 사용하지 않고도 서버컴포넌트에서 바로 db조회까지 다 할 수 있으니까 편하죠. 속도도 더 빠릅니다.

seo를 위해서 데이터를 가져와야하는 경우에도 편하고요.(generateMetadata)

그 외의 상황에서는 클라이언트에서 가져오는 경우가 좋습니다. 백엔드 서버가 있으면 ssr 목적 외에는 정말 사용 이유가 많이 줄어듭니다.

0

j44s11

답변 정말 감사드립니다!

캡처링부분 질문있습니다.

0

76

2

깃에 소스코드를 찾을 수 없습니다.

0

113

2

useInfiniteQuery promise와 react use 사용시 페이지 무한 로딩

0

98

1

import 파일 경로를 찾지 못 해서 에러가 발생합니다.

0

111

2

css 라이브러리 추천 부탁드립니다

0

141

2

팔로우 추천 목록이 빈 배열로 들어옵니다.

0

133

1

게시물 업로드 시 userId가 undefined로 들어가는 오류

0

119

1

useSuspenseQuery 사용 시 SSR 401 이슈 관련

0

172

1

리액트 쿼리 useinfinitequery 무한스크롤 구현 시 페이지가 이동할 경우 데이터가 보존되게 할 수 있나요??

0

184

3

폴링이 필요없는 이유

0

93

2

next Request Memoization과 react cache

0

110

2

seo 최적화 기준은 데이터 fetching인가요 아님 데이터 렌더링인가요?

0

84

2

next.js 서버fetch 에러 fallback ui 구현 방법

0

173

2

프레임워크 여론 파악법

0

125

2

필터옵션이 많은 페이지에서 서버 fetch를 하는게 맞는걸까요??

0

103

2

서버 fetch suspense 로 감싸고 새로고침 시 잠시 빈 화면이 노출된 후 fallback ui가 노출됩니다.

0

102

2

template.tsx 내 서버fetch 응답값과 클라이언트 컴포넌트 상태값 싱크가 맞지 않는 이슈

0

66

2

Auth.js 사용 시 authorize 함수가 호출되지 않습니다

0

132

2

next.js 에서 로그인에 관하여

0

138

1

Next의 route handler에 대한 질문이 있습니다.

0

101

2

게시판 리스트 만들때 use client를 어디서부터 집어넣어야할지 모르겠습니다

0

98

2

프라이빗 폴더를 해야 하는 이유가 모호한 것 같아요.

0

85

2

vanilla-extract 못찾는 문제

0

230

2

fetch 캐싱과 revalidate 관련

0

85

2