inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

3.5) 리액트 서버 컴포넌트 주의사항

RSC 주의사항 4번째 질문이요

해결된 질문

331

앙엉

작성한 질문수 9

1

  1. 서버 컴포넌트에서 클라이언트 컴포넌트에게 직렬화 되지 않는 Props는 전달 불가하다. 라고 하셨는데

    서버에서 -> 서버로 함수 props를 넘겨주는 경우에는 괜찮은 걸까요?? RSC payload로 변환되는 과정에서 결국 그 함수 Props도 직렬화되는 거 아닌가요??

    🚨 아래의 가이드라인을 꼭 읽고 질문을 올려주시기 바랍니다 🚨

질문 하시기 전에 꼭 확인해주세요- 질문 전 구글에 먼저 검색해보세요 (답변을 기다리는 시간을 아낄 수 있습니다)
- 코드에 오타가 없는지 면밀히 체크해보세요 (Date와 Data를 많이 헷갈리십니다)
- 이전에 올린 질문에 달린 답변들에 꼭 반응해주세요 (질문에 대한 답변만 받으시고 쌩 가시면 속상해요 😢)

질문 하실때 꼭 확인하세요
- 제목만 보고도 무슨 문제가 있는지 대충 알 수 있도록 자세한 제목을 정해주세요 (단순 단어 X)
- 질문의 배경정보를 제공해주세요 (이 문제가 언제 어떻게 발생했고 어디까지 시도해보셨는지)
- 문제를 재현하도록 코드샌드박스나 깃허브 링크로 전달해주세요 (프로젝트 코드에서 문제가 발생할 경우)
- 답변이 달렸다면 꼭 확인하고 반응을 남겨주세요

- 강의의 몇 분 몇 초 관련 질문인지 알려주세요!
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

react typescript next.js

답변 2

1

이정환 Winterlood

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

네. 서버->서버로는 어떤 종류의 값이든 Props로 전달할 수 있습니다. 직렬화와 관계없이요 이는 두 컴포넌트가 동일한 서버 환경 내에서 실행되기 때문입니다. 이 경우, 함수가 직렬화되지 않고 그대로 전달됩니다. RSC 환경에서는 서버에서 함수나 객체를 직접 전달하는 것은 문제가 되지 않으며, 이는 서버 간의 통신이기 때문에 직렬화 과정이 필요하지 않습니다.

중요한 점은 서버컴포넌트의 데이터를 클라이언트 즉 브라우저에 넘겨주기 위해 직렬화를 한다는 점 입니다. 따라서 서버 -> 클라이언트로의 Props 또한 직렬화 되어 브라우저로 넘어가 역직렬화를 거쳐야 하는데 이때에 문제가 발생하기 때문에 서버-> 클라이언트로의 함수 Props전달을 제한하고 있다고 이해하시면 될 것 같습니다 😃

0

앙엉

이해했습니다 감사합니다

0

인프런 AI 인턴

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

앙엉님의 질문에 대해, 서버 컴포넌트에서 클라이언트 컴포넌트에게 직렬화되지 않는 Props를 전달할 수 없는 문제에 관한 유사한 상황을 다룬 질문을 찾았습니다. 질문에서는 서버 컴포넌트가 클라이언트 컴포넌트로 Props를 전달하는 과정과 관련된 세부적인 내용을 묻고 있으며, 이에 대한 답변에서는 직렬화할 수 없는 Props를 서버에서 클라이언트로 전달하는 것이 왜 불가능한지에 대한 설명이 나와 있습니다.

RSC 주의사항, 4번째 주의사항 관련 질문 입니다에서 지식공유자는 서버 컴포넌트에서 클라이언트 컴포넌트로 직렬화할 수 없는 값(예: 함수)을 Props로 전달하는 것이 왜 문제인지를 설명합니다. 이때 모든 전달된 Props는 서버에서 직렬화된 후, 클라이언트에서 역직렬화되어야 합니다. 만약 Props로 사용된 값이 직렬화할 수 없는 값이라면, 이 과정이 정상적으로 이루어질 수 없기 때문에, 클라이언트에서 이를 부적절하게 해석하여 실행할 수 없게 된다는 점을 강조합니다.

이 답변에서는 직렬화 과정에서 생기는 주의 사항과 함께, 직렬화할 수 없는 값(함수 등)을 Props로 사용할 때 발생하는 문제를 설명하고 있습니다. 따라서 이 정보가 앙엉님의 질문에 대한 일부 해결책을 제공할 수 있을 것입니다.

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

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

0

53

2

next.js 프로젝트

0

50

1

Next.js + Tanstack Query BFF 구조 질문

0

47

2

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

0

52

2

모달 관련 질문

0

56

3

렌더링 관련 질문

0

92

2

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

0

78

2

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

0

76

2

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

0

90

2

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

0

107

3

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

0

120

3

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

0

74

2

getServerSideProps 함수와 SSR의 관계

0

87

6

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

0

70

2

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

0

124

2

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

0

97

2

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

0

82

2

배포 시 오류 발생

0

97

2

백엔드 서버 오류납니다.

0

95

2

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

0

102

1

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

0

113

1

[book]/[id]/page.tsx 모달 띄울 때 성능 하락 현상은 ReviewList를 불러오면서 발생하는 문제 같습니다.

0

69

2

빨간줄 설정

0

88

2

익스텐션 질문

0

65

1