🤩 웹 APP에서 필요한 정적 리소스를 한번에 모두 다운받고 이후 페이지 갱신 때 마다 필요 데이터만 전달받아 클라이언트에서 렌더링(CSR) - React, vue, Anguler
❌ 아니다!
페이지의 개수(html)와 어디서 렌더링을 하는지에 따라서 CSR과 SSR이 결정된다.
: 클라이언트 쪽에서 렌더링
👉 순서: User가 웹사이트에 방문 ⇒ 브라우저가 서버에 콘텐츠 요청 ⇒ 서버가 빈 뼈대 HTML(JS가 링크돼있음) 응답 ⇒브라우저는 JS 링크를 통해 JS 다운로드 후 JS를 이용해 동적 DOM 생성 ⇒ JS가 적용 완료 되면 렌더링완료(사용자가 페이지를 볼 수 있음)
장점
단점
구동 속도가 빠름.
화면 깜빡임이 없음
Time to View === Time to Interect
서버 부하 분산
⇒ 서버에서는 빈 HTML만 넘기면 됨.
좋은 UX(사용자경험)
⇒ 클라이언트에서 연산, 라우팅 모두 처리해서 반응속도가 빠름
초기 로딩 속도가 느림
SEO에 불리함
(Google크롤러만 JS파일 크롤링 가능하고 다른 크롤러들은 빈 HTML만 보기 때문)
: 서버에서 요청 시에 즉시 만든다. (미리 만들기 어려운 페이지에 적합)
👉 순서: USER 웹사이트 방문 ->브라우저 콘텐츠 요청 -> 서버에서는 렌더링 준비를 마친 HTML(CSS까지 적용완료), JS를 브라우저에 응답 -> 브라우저는 전달받은 페이지를 렌더, JS 다운, HTML에 JS 로직 연결
(즉, 화면에 HTML을 띄운채로 JS로직을 연결하여 컨텐츠는 보이지만 상호작용은 JS 로직 연결이 완료될 때까지 불가)
장점
단점
SSG(Static Site Generation ; Static Rendering)
: 서버에서 미리 다 만들어 둔다. (바뀔 일 없는 페이지에 적합)
**X**
(백엔드 다룰 줄 모르는 프론엔드한테는 좀 어렵다)**O**
Isomorphic App
초기렌더링은 SSR 그 이후는 CSR 방식을 정의하는 용어 !!
서버와 클라이언트에서 동일한 코드가 동작하는 APP(Universal Rendering)
서비스의 성격에 따라 적용하면 된다.
참고 영상 & 글
https://www.youtube.com/watch?v=YuqB8D6eCKE
https://babycoder05.tistory.com/entry/%EB%A6%AC%EC%95%A1%ED%8A%B8%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0-SPA-CSR-SSRhttps://leehwarang.github.io/2022/09/11/frontend-deploy.html