ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SSR과 CSR이란?
    프로그래밍 기초 공부 2022. 10. 31. 00:03

    24번째로 포스팅하게 될 내용은 SSR과 CSR에 관한 내용입니다.

     

    [ SSR ]

    Server Side Rendering의 약자
    서버쪽에서 렌더링 준비를 끝마친 상태로 클라이언트에 전달하는 방식
    • 서버에서 이미 '렌더 가능한' 상태로 클라이언트에 전달되기 때문에, JS가 다운로드 되는 동안 사용자는 무언가를 보고 있을 수 있음

     

     

    [ SSR 단계 ]

     

    1. User 가 Website 요청을 보냄
    2. Server는 'Ready to Render' 즉, 즉시 렌더링 가능한 html 파일을 만듬
    3. 클라이언트에 전달되는 순간, 이미 렌더링 준비가 되어있기 때문에 HTML은 즉시 렌더링 됨
      • 그러나 JS가 아직 읽히기 전이므로 사이트 자체는 조작 불가능함
    4. 클라이언트가 JS를 다운받음
    5. 다운 받고 있는 사이 유저는 컨텐츠를 볼 수는 있지만 사이트는 조작 불가
      • 대신 사용자의 조작을 기억함
    6. 브라우저가 JS 프레임워크를 실행
    7. JS까지 성공적으로 컴파일 되었기 때문에 기억하고 있던 사용자 조작이 실행되고 웹페이지는 상호작용이 가능해짐

     

    [ SSR 장점 ]

    • 첫 페이지 로딩 속도가 CSR에 비해 더 빠름
    • SEO가 좋음
      • 서버에서 렌더링 후 각각 페이지를 넘겨받는 것이므로 각각 페이지에 대한 정보 입력하기 쉬움

     

    [ SSR 단점 ]

    • 초기 로딩 이후 페이지 이동 시 속도가 다소 느림
    • 화면 깜빡임 현상 있음

     

     

     

    [ CSR ]

    Client Side Rendering의 약자
    SSR과 달리 렌더링이 클라이언트 쪽에서 일어남
    서버는 요청을 받으면 클라이언트에 HTML과 JS를 보내줌 클라이언트는그것을 받아 렌더링을 시작

     

     

     

    [ CSR 단계 ]

     

    1. User가 Website 요청을 보냄
    2. CDN이 HTML 파일과 JS로 접근할 수 있는 링크를 클라이언트로 보냄
    3. 클라이언트는 HTML과 JS를 다운받음
      • SSR과 달리 이때 유저는 아무것도 볼 수 없음
    4. 다운이 완료된 HTML,JS가 실행, 데이터를 위한 API가 호출
    5. 서버가 API로부터 요청에 응답
    6. API로부터 받아온 data를 placeholder 자리에 넣어주고, 웹페이지는 상호작용이 가능해짐

     

    [ CSR 장점 ]

    • 초기 로딩 속도가 느림
    • 원하는 내용만 업데이트 가능
      • 링크 이동 클릭 -> 헤더와 풋터와 같이 중복되는 내용 고정시키고 컨텐츠만 업데이트하여 로드할 수 있음

     

    [ CSR 단점 ]

    • 초기 로딩 이후 속도가 빠름
    • SEO에 취약
      • HTML 파일을 하나만 받아와서 작동해서 각각 페이지에 대한 정보를 담기 힘듬

     

    [ 렌더링 방식 선택기준 ]

    • SSR을 사용
      • 네트워크가 느릴 때 
        • CSR은 한번에 모든 것을 불러오지만 SSR은 각 페이지마다 나눠불러오기 때문
      • SEO가 필요할 때
      • 최초 로딩이 빨라야하는 사이트를 개발 할 때
      • 메인 스크립트가 크고 로딩이 매우 느릴 때
        • CSR은 메인스크립트가 로딩이 끝나면 API로 데이터 요청을 보냄
        • SSR은 한번의 요청에 아예 렌더가 가능한 페이지가 돌아옴
      • 웹 사이트가 상호작용이 별로 없을 때
    • CSR을 사용
      • 네트워크가 빠를 때
      • 서버의 성능이 좋지 않을 때
      • 사용자에게 보여줘야 하는 데이터의 양이 많을 때
        • 로딩창을 띄울 수 있는 장점이 있음
      • 메인 스크립트가 가벼울 때
      • SEO가 필요 없을 때
      • 웹 어플리케이션에 사용자와 상호작용할 것들이 많을 때

    '프로그래밍 기초 공부' 카테고리의 다른 글

    CORS(Cross-Origin-Resource Sharing)란?  (0) 2022.10.31
    DNS란?  (0) 2022.10.31
    MPA와 SPA란?  (0) 2022.10.29
    AJAX란?  (0) 2022.10.17
    JSP란?  (0) 2022.10.17
Designed by Tistory.