본문 바로가기

코딩 원리 연구소

CSR vs SSR

모습을 먼저 이해하자 

 


Server

const express = require("express");
const app = express();

const infoArr = [
  "csr과 차이점이 느껴지나요?",
  "ssr이란?",
  "HTML은 어디서 조작될까요?",
  "Server Side Rendering",
  "검색엔진 최적화(Search Engine, Optimization)에 상대적으로 유리하다.",
  "초기로딩 속도가 빠르다.",
  "TTV(Time To View)와 TTI(Time To Interact)의 시간 공백이 있을 수 있다."
];

app.get("/", (req, res) => {
  res.send(
    "<html><body><h1>" +
      infoArr[Math.floor(Math.random() * infoArr.length)] +
      "</h1><h1>SSR</h1>" +
      "<h2>Server Side Rendering이란 무엇인가?</h2>" +
      "</body></html>"
  );
});

app.listen(8080);

 

CSR

    server

   

const express = require("express");
const app = express();
const port = process.env.PORT || 5000;

const infoArr = [
  "ssr과 차이점이 느껴지나요?",
  "csr이란?",
  "SPA를 기반으로",
  "화면의 일부만 바꿔주는 것",
  "HTML은 어디서 조작될까요?",
  "Client Side Rendering",
  "AJAX를 통해서 서버로부터 필요한 데이터만 받습니다."
];
app.get(`/`, (req, res) =>
  res.send(infoArr[Math.floor(Math.random() * infoArr.length)])
);
app.get(`/csr`, (req, res) =>
  res.send(infoArr[Math.floor(Math.random() * infoArr.length)])
);

app.listen(port, () =>
  console.log(`Example app listening at http://localhost:${port}`)
);

 APP.JS

import React, { useState } from "react";
import axios from "axios";

function App() {
  const [information, setInformation] = useState("");
  function getInformation() {
    axios.get(`/csr`).then((res) => {
      console.log(res.data);
      setInformation(res.data);
    });
  }
  return (
    <div className="App">
      <button onClick={getInformation}>Client Side Rendering</button>
      <h1>{information}</h1>
      <h1>CSR</h1>
      <h2>Client Side Rendering이란 무엇인가?</h2>
    </div>
  );
}

export default App;