inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

한 입 크기로 잘라먹는 Next.js

4.3) 리퀘스트 메모이제이션

서버컴포넌트 데이터 페칭 관련 문의 드립니다.

해결된 질문

187

Byoungmin Kang

작성한 질문수 4

0

서버컴포넌트에서 필요한 컴포넌트마다 데이터를 페칭하면,

서버에서 받아온 상태에 대해서는 전역상태 관리를 할 필요가 전혀 없는건가요?

 

react typescript next.js

답변 2

1

이정환 Winterlood

안녕하세요 이정환입니다.

특정 데이터의 전역 상태관리 필요 유무는 이 데이터를 어디서 불러왔느냐 보다는 이 데이터가 어떻게 활용될 것이느냐에 있는것 같습니다.

즉 서버측에서 불러온 데이터라고 할 지라도 클라이언트가 이를 수정하고 수정된 결과를 실시간으로 조회할 수 있으려면 전역 상태관리 도구를 이용해 상태로써 해당 데이터를 관리하면 될 것이고, 클라이언트 측에서 불러온 데이터라고 할 지라도 이를 수정하지 않고 그저 UI를 렌더링 하는데에만 사용된다면 전역 상태관리 도구를 이용할 필요가 없습니다.

결론적으로 해당 데이터를 이용한 상태 변화가 필요하다면 상태관리 도구를 이용하시는 걸 추천드립니다.

 

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. Byoungmin Kang님.

서버 컴포넌트에서 데이터 페칭 시 전역 상태 관리의 필요성에 대한 질문을 주셨군요. 이 질문은 Next.js 및 React에서 서버 및 클라이언트 간의 데이터 흐름과 상태 관리를 이해하는 데 중요한 부분입니다.

서버 컴포넌트의 데이터 페칭과 전역 상태 관리

  1. 서버 컴포넌트에서의 데이터 페칭:

    • Next.js의 서버 컴포넌트는 주로 SSR(Server Side Rendering)이나 SSG(Static Site Generation)를 통해 데이터 페칭을 진행하며, 이러한 데이터는 페이지 로드 시 서버에서 클라이언트로 직접 전달됩니다. 이렇게 페칭된 데이터는 이미 완전히 준비된 상태로 클라이언트에 전달되므로 클라이언트에서는 초기화할 필요가 없습니다.
  2. 전역 상태 관리의 필요성:

    • 전역 상태 관리 도구는 보통 여러 컴포넌트간에 상태를 공유할 필요가 있을 경우 또는 클라이언트 측에서 지속적으로 변화하는 데이터를 관리할 때 유용합니다.
    • 서버 페칭된 데이터를 클라이언트에서 전역 상태로 관리할 필요는 없지만, 클라이언트 쪽에서 사용자가 상호 작용하며 상태가 변경될 수 있는 경우에는 전역 상태 관리가 필요할 수 있습니다.
  3. 언제 전역 상태 관리가 필요한가?:

    • 전역 상태 관리가 필요한 구체적인 상황으로는 사용자 세션 관리, 다중 컴포넌트가 동일한 데이터를 참조해야 하는 경우가 있습니다. 만약 서버에서 받아온 데이터가 페이지 로드 이후에도 여러 컴포넌트에서 동적으로 사용되고, 그 상태가 변경될 가능성이 있다면, 전역 상태 관리를 고려할 수 있습니다.

추가 참고자료

이와 관련하여 다음 질문도 참고하시면 도움이 될 것입니다:

이처럼, 서버 컴포넌트에서 데이터가 페칭된 후 어떻게 그 데이터를 관리할 것인가는 전적으로 데이터의 특성과 사용 패턴에 따라 달라질 수 있습니다. 사용하시는 기술 스택과 요구사항에 따라 적절한 방법을 선택하시기 바랍니다.

저는 질문자님의 이해를 돕고자 지식 공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식 공유자께서 답변해 주실 것입니다.

버셀로 서버 배포 후 접속 시 500 에러 발생

0

66

2

컴포넌트와 레이아웃

0

54

2

@/styles/globals.css'

0

50

2

풀라우트캐시 동작 원리에서 데이터 캐시 관련 질문

0

71

2

next.js 프로젝트

0

68

1

Next.js + Tanstack Query BFF 구조 질문

1

82

2

Next.js 사전렌더링 이해하기 부분

0

84

2

모달 관련 질문

0

88

3

렌더링 관련 질문

0

108

2

중복으로 하나의 api를 요청할 때 캐싱 옵션 통일화

0

97

2

라우트 세그먼트 옵션 강좌 노트에 사소한 제보 남깁니다.

0

95

2

SSR시 context에 params말고 query를 사용하면 안되나요?

0

107

2

npx prisma db push 시 에러가 뜹니다.

0

131

3

vercel 배포를 실패하였습니다.

0

150

3

Image 컴포넌트 사용시 브라우저 콘솔에 경고는 왜 뜨는걸까요?

0

93

2

getServerSideProps 함수와 SSR의 관계

0

118

6

없는 페이지인데 풀라우트캐시로 저장이 되는 이유가 궁금합니다

0

93

2

실제 프로젝트에서 SSR 사용에 관해서 질문드립니다.

0

145

2

일반적인 nextjs project architecture에 대하여..

0

120

2

2.14 Search에서 작성한건 static이긴하지만 CSR이 아닌가요?

0

101

2

배포 시 오류 발생

0

111

2

백엔드 서버 오류납니다.

0

107

2

취약점 제거시 nestjs 버전 문제가 생길까요?

0

117

1

eslint.config.mjs 내 rules 어떻게 설정 하나요?

0

130

1