개발자

Next.js와 SSR관련 질문있습니다 !

2023년 06월 20일조회 527

Next.js 를 공부하다가 궁금증이 생겨 질문합니다 ! 1. Next.js로 만들어진 프로젝트를 S3 + CloudFront와 같은 정적 웹사이트 형태로 배포시에는 SEO와 같은 SSR의 이점을 볼 수 없고, SSR이 동작을 안하는 걸까요?! 2. 페이지 내에서 useEffect를 이용해 api fetch를 통해 데이터를 가져오는 부분이 CSR형태인가요? getServersideProps를 통해 데이터를 받아오면 혹시 이 방법과 비교했을때 장점이 무엇이 있는지… 궁금합니다 ! 질문이 길지만 고수님들 답변 부탁드립니다😭

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

답변 1

이승현님의 프로필 사진

1. Next.js 로 만들어진 site를 S3 + Cloudfront에 배포한다면, SSG(Static Site Generation)을 통해 만들어진 결과물을 배포하실 텐데요. SSR은 내부적으로 instance를 만들어 실행하기 때문에, S3 + Cloudfront에서는 사용할 수가 없습니다.(둘다 computing power를 제공하는 서비스가 아니기 때문이죠). 그러나 SEO의 경우는, 만들어진 site에 대한 sitemap및 robot.txt를 지정위치에 두면 되기 때문에 사용할 수는 있습니다.(그러나 이 역시 SSG 형태로 사용하겠죠~! - 또한 다시 배포할때, 함께 SSG로 만들면 되기 때문에 SSG로 만들어진 site에 대한 SEO 정보를 함께 갱신하게 할 수 있을 겁니다.) 2. SSR을 사용하는 상태에서 useEffect()로 api fetch를 가져오기 보다는getServerSideProps()에서 얻어오는 것을 당연히 추천 드립니다. 다만, 실시간에 준하거나 특별한 event에 대해 해당 api fetch한 정보가 바뀌고, 그 내용을 page에 반영해야 한다면 useEffect()를 사용할 수 있을 겁니다. 이 때, 최초 rendering 시에는 props로 넘겨온 data(getServerSideProps에서 api fetch로 얻어 온 값)를 사용 - useState()의 initialValue로 setting - 하고, 그 이후, 특정 조건을 만족 시킬때, useEffect()나 혹은 다른 방법(버튼 클릭 이벤트, react-query hook의 사용?.. 등등)으로 해당 api fetch를 사용해서 이전 data를 변경 - useState()의 setState 사용 - 해 주면 될 것입니다.

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

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

또는

이미 회원이신가요?

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

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

새로운 질문 올리기

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