인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

qjatjs123123님의 프로필 이미지

작성한 질문수

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

2.18) ISR 2. 주문형 재 검증

SSR은 언제 사용될까요??

해결된 질문

작성

·

49

0

안녕하세요!
강의를 수강하면서 나날이 성장하는게 느껴집니다!!

SSG, SSR, ISR 개념을 배우면서, SSR을 언제 사용해야 하는지에 대한 고민이 생겼습니다.

블로그 글이나 GPT의 답변을 참고해보니, 개인화된 사용자 데이터나 요청 시에만 알 수 있는 정보에 의존하는 페이지를 렌더링해야 하는 경우 사용한다고 합니다.

저는 조금 다른 접근을 고민해봤습니다.

ISR을 활용하여 개인화된 페이지를 생성하고, Middleware에서 사용자 인증을 검증하는 방식으로 생각해봤습니다.
또는 SSR 대신 SSG를 사용하고, 클라이언트 측에서 필요한 데이터를 패칭하는 방식으로 생각해봤습니다.

정리하자면 SSR은 언제 써야하는지 잘 모르겠습니다.

소중한 시간 긴 글 읽어주셔서 감사합니다!!

답변 2

0

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

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

실제로 페이지 라우터 버전의 SSR은 그닥 자주 활용되지는 않는걸로 알고 있습니다. 말씀하신대로 동적인 데이터 반영이 필요할 경우 ISR로 처리하면 되고, 그렇지 않다면 SSG로 처리하는게 훨씬 깔끔할테니까요

만약 현재 사용자 정보를 페이지에 많이 보여줘야 하는 상황이라면 SSR을 고려 해 볼 수도 있겠습니다. 쿠키를 통해 요청과 함께 실시간으로 전달된 데이터를 바로 화면에 렌더링하려면 SSR을 사용해야 할 것 같습니다. 그러나 이 역시 SEO가 주요한 상황이 아니라면 ... CSR을 통해 가볍게 해결할 수 있기도 합니다.

 

참고로 이런 SSR은 이후 앱 라우터에서는 Dynamic 페이지 라는 이름으로 비슷하게 제공되는데요, 앱 라우터에서는 스트리밍 등의 추가적인 기능을 통해 SSR 방식도 꽤나 쓸만하도록 제공하고 있으니 참고하시면 더 좋겠습니다 😃

qjatjs123123님의 프로필 이미지
qjatjs123123
질문자

답변 감사합니다!!

0

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

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

Next.js의 SSR(Server-Side Rendering) 사용에 대한 고민에 도움을 드리고자 합니다. SSR은 모든 요청 시 서버에서 페이지를 렌더링하여 클라이언트에 전달하는 방식입니다. 이를 통해 최신 데이터를 즉시 제공할 수 있는 환경을 구축할 수 있습니다. 다음은 SSR을 사용하는 대표적인 상황입니다:

  1. 개인화된 페이지: 사용자마다 다른 콘텐츠를 제공해야 할 때, 예를 들어 로그인이 필요한 사용자 대시보드 같은 경우 SSR을 사용하면 효율적입니다.

  2. 실시간 데이터 요구: 주식 시세나 스포츠 점수와 같이 즉각적인 데이터 업데이트가 필요한 페이지입니다.

  3. 검색 엔진 최적화(SEO): 검색 엔진에서 즉시 크롤링할 수 있도록 서버 측에서 렌더링한 HTML을 제공하는 것이 유리합니다. 이는 특히 빈번한 데이터 변경이 있는 경우 유용합니다.

하지만 말씀하신 대로, Middleware에서 사용자 인증을 하거나 클라이언트 측에서 데이터를 패칭하여 사용자의 경험을 최적화하는 방법도 효과적일 수 있습니다. 이는 서버 부하를 줄일 수 있는 장점이 있습니다.

대안으로 고려할 수 있는 사항:
- ISR(Incremental Static Regeneration)을 통해 상대적으로 적은 빈도로 업데이트되는 페이지에 새로운 콘텐츠를 제공합니다.
- SSG(Static Site Generation)과 클라이언트 측 데이터 패칭을 조합하여, 초기 렌더링 속도를 높이는 동시에 필요한 경우만 데이터를 서버에서 가져옵니다.

추가적으로 유사한 주제에 대한 답변을 추천드립니다. 자세한 활용 사례나 더 깊은 내용을 원하신다면 이전 학습자의 질문과 답변을 참고하시면 도움이 될 것입니다.

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