인프런 커뮤니티 질문&답변

앙엉님의 프로필 이미지

작성한 질문수

한 입 크기로 잘라먹는 Next.js(15+)

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

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

해결된 질문

24.09.03 12:43 작성

·

74

0

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

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

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

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

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

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

답변 2

0

이정환 Winterlood님의 프로필 이미지
이정환 Winterlood
지식공유자

2024. 09. 03. 18:14

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

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

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

앙엉님의 프로필 이미지
앙엉
질문자

2024. 09. 04. 15:19

이해했습니다 감사합니다

0

인프런 AI 인턴님의 프로필 이미지

2024. 09. 03. 12:46

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

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

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

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

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

앙엉님의 프로필 이미지

작성한 질문수

질문하기