해결된 질문
작성
·
57
0
Next.js의 App Router 강의를 듣다가 헷갈리는 부분이 있어서 질문 드립니다!
서버 컴포넌트로 초기 접속을 하게 되면 서버에서 RSC Payload와 HTML을 렌더링해서 브라우저에 보여주는걸까요? 아니면 RSC Payload가 직렬화한 HTML 정보를 가지고 있어서 바로 브라우저에 보내지는걸까요? 공식 문서에는 하이드레이션을 한다고 되어 있는데 하이드레이션을 하게 되면 두 번 렌더링이 되는거 아닌가요??
Link를 통해 서버 컴포넌트로 이동하게 되면 클라이어트 컴포넌트가 이동하는 것처럼 CSR 방식으로 동작을 하는건가요? 만약 동작을 한다 그러면, prefetch된 RSC Payload를 통해서 브라우저가 새로운 UI를 구성하는건가요?
답변 2
0
안녕하세요 이정환입니다. 순서대로 답변드릴게요
1) 사전 렌더링 된 HTML과 서버 컴포넌트만의 실행 결과물인 RSC Payload를 브라우저에 함께 보내주게 됩니다. 이 결과 브라우저는 서버로부터 받은 HTML을 화면에 렌더링 합니다.
여기서 하이드레이션은 서버 컴포넌트에는 해당되지 않는 이야기 입니다. 강의의 서버 컴포넌트 이해하기 챕터에서 말씀드리고 있듯이 하이드레이션이란 브라우저가 Next.js 서버로부터 클라이언트 컴포넌트들의 코드가 묶여있는 JS Bundle을 전달 받았을 때 이를 실행하여 HTML과 JS를 연결하는 과정입니다. 쉽게 말하자면 클라이언트 컴포넌트들의 코드를 브라우저에서 동작시키는 과정이라는 것이죠
그렇다면 클라이언트 컴포넌트는 두번 실행되는것 아닌가? 궁금하실 수 있는데 맞습니다. 이 내용 역시 우리 강의의 서버 컴포넌트 주의사항 챕터에서 자세히 소개 해 드리고 있으니 해당 챕터를 참고하시면 도움이 될 것 같습니다.
2) 네 맞습니다.
0
안녕하세요, 인프런 AI 인턴입니다. gayeongx0916님께서 Next.js의 서버 컴포넌트 렌더링 과정과 관련하여 혼란스러운 부분에 대해 질문하신 것을 확인했습니다. 해당 주제와 관련하여 도움을 드리겠습니다.
서버 컴포넌트 초기 접속 시:
링크를 통한 서버 컴포넌트 이동:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.