기은P
시간이 멈추는 장소
기은P
  • Programming (272)
    • 개발노트 (1)
    • FrontEnd (56)
      • ES&JS 문법 (14)
      • HTML&CSS (4)
      • React 기본 (18)
      • React 심화 (12)
      • React 이슈 (2)
      • Project 연습 (1)
      • Next.js (5)
    • Backend&Devops (33)
      • AWS (2)
      • Docker (9)
      • Jenkins (6)
      • Nginx (6)
      • Node.js (1)
      • ElasticSearch (5)
      • 프레임워크&아키텍처 (2)
      • 암호화 (0)
      • 기타 (2)
    • 알고리즘 (3)
    • C# (8)
      • WPF (8)
    • Java (51)
      • 순수 Java (18)
      • RDF&Jena (12)
      • RCP&GEF (9)
      • JMX (5)
      • JMapper (3)
      • 오류해결 (4)
    • Database (21)
      • RDBMS (9)
      • NoSQL (2)
      • TSDB (1)
      • GraphQL (1)
      • Hibernate (3)
      • 데이터베이스 이론 (4)
      • Redis (1)
    • 프로토콜 (11)
      • Netty (4)
      • gRPC (5)
      • 프로토콜 개념 (2)
    • Server (4)
      • Linux (4)
    • 2020 정보처리기사 필기 (43)
      • 목차 (1)
      • 기출문제 (1)
      • 1과목 - 소프트웨어 설계 (6)
      • 2과목 - 소프트웨어 개발 (7)
      • 3과목 - 데이터베이스 구축 (8)
      • 4과목 - 프로그래밍 언어 활용 (7)
      • 5과목 - 정보시스템 구축 관리 (10)
    • 2020 정보처리기사 실기 (31)
      • 목차 (4)
      • 기출예상문제 (19)
      • 실기요약 (8)
    • 빅데이터분석기사 필기 (4)
      • 목차 (0)
      • 필기 요약 (3)
    • 전기 공학 (1)
      • CIM (1)
    • 산업자동화시스템 (3)
      • SCADA (1)
      • OPC UA (2)
    • 디자인패턴 (1)
    • 휴지통 (0)

공지사항

  • 공지사항/포스팅 예정 항목

최근 댓글

최근 글

전체 방문자
오늘
어제

티스토리

hELLO · Designed By 정상우.
기은P

시간이 멈추는 장소

[React] SSR과 CSR(SPA) 차이
FrontEnd/React 심화

[React] SSR과 CSR(SPA) 차이

2022. 10. 19. 16:21
반응형

1. 개요

먼저 브라우저가 동작되어 우리에게 정보를 표현할 때, HTML의 정보를 읽어 이를 내부적으로 렌더링 한 후 js나 css를 반영해 최종적으로 정보를 표현합니다.

이러한 렌더링을 하는 방식이 SSR과 CSR이 있는데, 이 두 가지 렌더링 방법에 대한 차이를 이해해보려고 합니다.

 

 

 

2. SSR(Server Side Rendering)

https://narup.tistory.com/235

 

[Next.js] SSG, SSR 개념 정리

1. 개요 전 글에서는 Hydrate에 대해서 알아봤는데, 이번에는 SSG(Server-Side-Generation, Static-Site-Generation)와 SSR(Sever-Side-Rendering)에 대해 알아보려고 합니다. React: CSR(Client-Side-Rendering)..

narup.tistory.com

SSR은 Next.js 프레임워크에서 동작하는 렌더링 방법인데 자세한 설명은 위에 나와있고, 간략하게 설명을 하면

우리가 서버에게 웹 페이지를 요청할 때마다 새로고침이 일어나며, 서버에서 새로운 HTML을 그때그때마다 받아와 서버에서 그때그때마다 렌더링 하는 것을 말합니다.

 

 

 

3. CSR(Client Side Rendering), SPA(Single Page Application)

Next.js가 아닌 React.js는 기본적으로 CSR(Client Side Rendering), SPA(Single Page Application)방식으로 렌더링합니다.

이는 모바일 친화적으로 사용될 수 있는 서비스가 필요해서인데, 그때그때마다 렌더링을 할 경우 모바일에서 성능이 부담이 갔기 때문입니다.

이때 나온 개념이 SPA(Single Page Application)으로, 최초 한번 전체 페이지를 로딩한 이후 부터에는 브라우저 내부에서 데이터만 변경해서 사용하는 방식입니다. 이러한 SPA 방식은 트래픽을 감소시키고 사용자에게 최적화된 환경을 제공할 수 있게 됩니다.

따라서 서버는 단순하게 Json 파일만 보내주고, 클라이언트 측에선 초기에 전송받은 HTML과 javascript를 통해 렌더링을 수행합니다. 이러한 과정을 CSR(클라이언트 사이드 렌더링)이라고 합니다.

 

3-1. SPA의 특징

클라이언트 사이드 렌더링을 수행하는 SPA는 서버에서 View를 렌더링하지 않고, HTML, JS, 각종 리소스를 서버에서 다운 받은 후 브라우저에서 렌더링을 수행하기 때문에 초기 View의 로딩 속도가 오래 걸리는 단점이 있습니다.

반면, 사용자의 액션에 따라 필요한 부분만 다시 읽어드리기 때문에 인터랙션이 빠르다는 장점이 있습니다.

 

 

3-2. SEO 문제

SEO란, Search Engine Optimization의 약자로 검색 엔진 최적화라는 의미인데 네이버나 구글과 같은 검색 엔진이 SPA로 만든 웹 페이지가 노출 되기 위한 과정을 말합니다.

SSR같은 경우 서버측에서 렌더링한 페이지(완성된 페이지)를 클라이언트로 전달하기 때문에 문제가 없는데, SPA 같은 경우는 완성된 페이지가 아닌 html+js+css와 같은 리소스를 받아서 브라우저 측에서 조합하기 때문에 검색 엔진에 노출되기가 어렵다는 문제가 있습니다.

*실제로 조회하면 html 뼈대만 있는 빈 페이지만 노출되게 됩니다.

 

 

 

 

참고

https://goodgid.github.io/Server-Side-Rendering-and-Client-Side-Rendering/

반응형
저작자표시 변경금지 (새창열림)

'FrontEnd > React 심화' 카테고리의 다른 글

[React] 렌더링(리렌더링)  (0) 2022.11.03
[React] SEO 처리 하기  (0) 2022.10.19
[React] Redux Toolkit 에서의 비동기 처리(createAsyncThunk, extraReducers)  (0) 2022.09.19
[React] Redux Toolkit 사용법  (1) 2022.09.19
[React] Redux 사용하기(2) - 카운터 구현  (0) 2022.06.21
    'FrontEnd/React 심화' 카테고리의 다른 글
    • [React] 렌더링(리렌더링)
    • [React] SEO 처리 하기
    • [React] Redux Toolkit 에서의 비동기 처리(createAsyncThunk, extraReducers)
    • [React] Redux Toolkit 사용법
    기은P
    기은P
    기은P의 블로그 일상과 개발 관련 포스팅 #React #Typescript #Next #Nest https://github.com/kimdongjang

    티스토리툴바