티스토리 뷰

CSR (Client Side Rendering)

말그대로 렌더링이 클라이언트 쪽에서 일어난다.
즉, 서버는 요청을 받으면 클라이언트에게 HTML과 JS를 보내준다.
클라이언트는 그것을 받아 렌더링을 시작한다.

  1. User가 Website 요청을 보낸다
  2. CDN이 HTML 파일과 JS로 접근할 수 있는 링크를 클라이언트로 보낸다.
    CDN : aws의 cloudflare를 생각하면 된다. 엔드 유저의 요청에 물리적으로 가까운 서버에서 요청에 응답하는 방식
  3. 클라이언트는 HTML과 JS를 다운로드 받는다. (이때 SSR과 달리 유저는 아무것도 볼 수 없다.)
  4. 생략
  5. 다운이 완료된 JS가 실행된다. 데이터를 위한 API가 호출된다. (이때 유저들은 placeholder를 보게된다.)
  6. 서버가 API로부터의 요청에 응답한다.
  7. API로부터 받아온 data를 placeholder 자리에 넣어준다. 이제 페이지는 상호작용이 가능해진다.

즉, 서버에서 처리 없이 클라이언트로 보내주기 때문에 JS가 모두 다운로드 되고 실행이 끝나기 전까지 사용자는 볼 수 있는게 없다.

 

 


SSR (Server Side Rendering)

말 그대로 서버쪽에서 렌더링 준비를 끝마친 상태로 클라이언트에게 전달하는 방식이다.

  1. User가 Website 요청을 보낸다
  2. Server는 "Ready to Render" 즉, 즉시 렌더링 가능한 HTML 파일을 만든다.
    (리소스 체크, 컴파일 후 완성된 HTML 컨텐츠로 만든다.)
  3. 클라이언트에게 전달되는 순간, 이미 렌더링 준비가 되어있기 때문에 HTML은 즉시 렌더링 된다.
    But, 사이트 자체는 조작이 불가능하다(JS가 읽히기 전이므로)
  4. 클라이언트가 JS를 다운받는다.
  5. 다운 받아지고 있는 사이에 유저는 컨텐츠는 볼 수 있지만 사이트를 조작할 수는 없다. 이때의 사용자 조작을 기억하고 있는다.
  6. 브라우저가 JS프레임워크를 실행한다.
  7. JS까지 성공적으로 컴파일 되었기 때문에 기억하고 있던 사용자 조작이 실행되고 이제 웹페이지는 상호작용 가능해진다.

즉, 서버에서 이미 렌더 가능한 상태로 클라이언트에게 전달되기 때문에, JS가 다운로드 되는 동안 사용자는 무언가를 보고 있을 수 있다.


CSR vs SSR 차이점

  • 웹페이지 로딩 시간
    1) 첫페이지 로딩시간

    - CSR의 경우 HTML, CSS와 모든 스크립트들을 한번에 불러온다. 
    - SSR의 경우 필요한 부분의 HTML과 스크립트만 불러온다.
    따라서 평균적으로SSR이 더 빠르다

    2) 나머지 페이지 로딩시간
    - CSR은 이미 첫페이지 로딩할 때 나머지 부분을 구성하는 코드를 받아왔기 때문에 빠르다.
    - 반면, SSR은 첫페이지를 로딩한 과정을 정확하게 다시 실행한다. 그래서 더 느리다.

  • SEO 대응
    검색 엔진은 자동화된 로봇인 '크롤러'로 웹사이트들을 읽는다. CSR은 JS를 실행시켜 동적으로 컨텐츠가 생성되기 때문에 JS가 실행 되어야 meatadata가 바뀌었다.
    (이전 크롤러들은 JS를 실행시키지 않았었기에 SEO 최적화가 필수였다. 하지만 구글이 그 트렌드를 바꾸는 중)
    SSR은 애초에 서버 사이드에서 컴파일되어 클라이언트로 넘어오기 때문에 클로러에 대응하기 용이

  • 서버 자원 사용
    - SSR이 서버 자원을 더 많이 사용한다. 왜? 매번 서버에 요청을 하기 때문이다.
    -  반면 CSR은 클라이언트에 작업을 몰아주기 때문에 서버에 부하가 적다. 

 


 

출처

https://hahahoho5915.tistory.com/52

'개발공부 > 기술면접 대비' 카테고리의 다른 글

라우터(Router)  (0) 2023.04.10
Webpack & Babel  (0) 2023.04.07
[JS] require vs import  (0) 2023.04.06
[JS] 이벤트 버블링 & 이벤트 캡처링  (0) 2023.04.05
[JS] 객체지향 프로그래밍  (0) 2023.04.04
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함