개발자
ssr을 사용하는 가장 큰 이유 중 하나는 seo입니다. seo는 html 내부의 데이터를 수집해서 웹 결과를 구성하는데 csr은 초기에 빈 html을 받고, 이후 링크된 자바스크립트를 통해 화면을 렌더링 합니다. 이러한 구조 때문에 seo에 취약하다는 단점이 생깁니다. ssr은 프리렌더링을 통해 미리 화면을 렌더링 하고 완성된 html을 클라이언트에게 보내줌으로 seo를 최적화 합니다. 하지만 리엑트 코드를 작성중 이런 경우 생기는 데 동적으로 받아오는 데이터가 있고, 이에 따라 달라지는 화면이 여러가지인 구조입니다. 이런 상황이 빈번하다면 프리렌더링을 하더라도, 핵심적인 데이터가 html에 나타나지 못하니 여전히 seo에 취약한 것 아닌가 하는 의문이 들었습니다. 그리고 만약 그러하다면, 이런한 코드방식을 지양해야 하는가 의문도 있습니다.
답변 1
인기 답변
일단 과거의 검색엔진과 다르게 최근에는 퓨어 리액트 (CSR)의 경우에도 SEO가 빈 값으로 표시되진 않습니다. (물론 완벽하지는 않습니다) https://ahrefs.com/blog/react-seo/ 먼저 SEO에 대해 생각해봐야 하는데 구글, BING, 네이버 등 각 검색엔진이 어떤 방식으로 도메인의 내부를 파악하고 검색하게 하는지는 조금씩 다른 방법을 사용합니다. 검색 결과를 높이기 위해선 각 검색사이트 별 최적화나 Meta 테그의 사용 옳바른 Html 구조 사용, Aria 라벨 등을 사용한 목차화 등 여러가지 간접적인 방법이 적용 가능합니다. 다음 문서를 참고하시면 이러한 SEO 향상에 도움이 될 것 같습니다. 😁 https://web.dev/articles/how-search-works?hl=ko (간접적으로 구글 개발자 도구의 LightHouse 등으로 측정 및 개선도 큰 도움이 됩니다) 코드 방식을 지양이라 함은 CSR대신 SSR을 사용하는게 맞는가 라는 의미라면 그것은 조금 다른 의미입니다. 그렇다면 CSR과 SSR은 왜 언제 이용하는 걸까요? CSR https://patterns-dev-kr.github.io/rendering-patterns/client-side-rendering/ SSR https://patterns-dev-kr.github.io/rendering-patterns/server-side-rendering/ 가장 중요한 점은 사용자 접근성과 이탈 등을 고려해서 어떤 방식이 적절한지 고민해 볼 필요성이 있을 것 같습니다. 사이트의 규모, 중요한 방향성( 리소스 중심이냐 ?) 첫 화면이 중요한가 , 유지 보수가 중요한가 등 여러가지를 고려해서 하나를 선택하시면 될 것 같습니다. + 최근 이러한 SSR , CSR을 리엑트에서 도입하기 쉽게 만든 Next에서는 두 가지 방법 이외에 다른 여러가지 선택지를 제공합니다. SSG https://patterns-dev-kr.github.io/rendering-patterns/static-rendering/ ISR https://patterns-dev-kr.github.io/rendering-patterns/incremental-static-generation/ 해당 방식을 도입해서 통계를 사용해 사이트 진입 인원이나 검색율 등을 확인하는 것도 좋은 대안이 될 것 같습니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2023년 11월 06일
SSR을 사용할 때 조건부 렌더링과 관련된 문제점은 일반적으로 SEO와 성능 이슈에 집중하게 됩니다. 첫 번째로, 동적으로 받아온 데이터를 렌더링하기 위해 SSR을 사용했을 때, 데이터 로딩이 필요한 컴포넌트는 클라이언트에서 javascript가 로드되고 실행될 때까지 렌더링이 완료되지 않을 수 있습니다. 이는 사용자에게 첫 화면의 로딩 시간이 길어지는 현상으로 나타납니다. 두 번째로, 말씀하신 것처럼 동적 데이터가 HTML에 포함되지 않으면, 웹 크롤러가 해당 정보를 가져가지 못하고 SEO 최적화에 문제가 생길 수 있습니다. 하지만 이런 경우에도 해당 데이터 취득 전까지의 스태틱한 부분들은 SSR을 통해 제공하는 것이 유리합니다. 그리고 서버 사이드 렌더링과 클라이언트 사이드 렌더링을 적절히 혼합하여 사용하는 전략을 취할 수도 있습니다. 예를 들어, 초기 페이지 로드 단계에서는 SSR을 사용하고 추가적인 동작에 대해서는 CSR 방식으로 처리하는 등의 방법이 있습니다. 또는 Next.js와 같은 프레임워크를 사용하면 데이터를 서버에서 로드하여 렌더링하는 동시에, HTML 문서에 이 데이터를 직접 포함시킬 수도 있습니다. 이렇게 하면 웹 크롤러가 필요한 모든 정보를 가져갈 수 있으므로 SEO 최적화에 유리합니다. 결국 어떤 방식을 선택할지는 개발하고자 하는 앱의 특성과 필요성에 따라 달라질 것입니다. 완벽한 해답이 없으며 상황에 따른 적절한 대응과 선택이 중요합니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!