개발자

next.js getServerSideProps와 서버 컴포넌트

2023년 01월 06일조회 246

next.js에서 새롭게 선보인 서버 컴포넌트를 공부하다가 생긴 질문 남겨봅니다! 기존에는 SSR을 구현할때 getServerSideProps를 통해서 페이지에 필요한 정보를 내려주고 있었는데요. 이렇게 getServerSideProps에 구현된 로직을 서버 컴포넌트로 바꿔야하는 것인지 궁금합니다. 서버 컴포넌트도 서버에서만 돌아가는 코드니까 getServerSideProps가 하던 역할을 쪼개서 하는건가 싶어서요. (https://beta.nextjs.org/docs/rendering/server-and-client-components)

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

손정현님의 프로필 사진

안녕하세요! 아직 새로 나온 next.js를 많이 써보지는 않았지만 질문자님이 이해하신 개념과 비슷해 보이기는 합니다! 기존 getServerSideProps 방식은 페이지 단위로 데이터를 가져온거라면 서버 컴포넌트는 그걸 컴포넌트 단위로 할 수 있게끔 바꿔준 것 같네요. 전자의 방식은 props drilling 문제가 있어서 react-query 같은 걸 사용해서 context api에 캐싱하고 썼었습니다. 서버 컴포넌트를 사용한다면 굳이 그럴 필요는 없는 것 같네요. 베타 공식 문서를 좀 읽다보면 흥미로운 주제들이 많이 보이는데요. - deduping requests: 페이지를 렌더할때 여러 컴포넌트에서 동일한 요청을 보낼 수 있는데, 중복 요청은 제거하고 하나만 보내게끔 하는 기능 - caching - useTransition 훅을 사용한 UI blocking 하지 않는 요청 보내기 - Streaming 과 Suspense: 기존 SSR은 페이지에 필요한 데이터 페칭이 모두 끝날때까지 기다렸다가 한번에 html을 보내주는 반면, streaming과 suspense를 사용하면 데이터 페칭이 필요한 부분만 나중에 보내주는 방식 요런것들 복합적으로 잘 조합해서 기존에 사용하던 getServerSideProps 보다 더 성능이 좋은 서버사이드 렌더링을 구현할 수 있지 않을까 싶네요. 좀 더 자세한건 공식문서를 한번 쭉 훑어보시는 것을 추천드립니다! 예시 코드도 있네요 :) https://beta.nextjs.org/docs/data-fetching/fetching

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!