SlideShare a Scribd company logo
Server Side Rendering
(feat. )
24기 지무근
INDEX
1. Single Page Application
2. Server Side Rendering
3. Next.js
Sever Side Rendering - 2019 Zeropage Devil's Camp
Single Page Application (SPA)
Single Page Application (SPA)
✓
✓ 매번 서버로부터 페이지를 받아 오는 것이 아닌
현재 페이지의 내용을 변경하여 표시하는 웹 어플리케이션
✓ 중복되는 부분 생략 가능
✓ 실제 페이지의 이동이 일어나지 않음
Sever Side Rendering - 2019 Zeropage Devil's Camp
Sever Side Rendering - 2019 Zeropage Devil's Camp
Single Page Application (SPA)
No reload !
Interaction
Data
Sever Side Rendering - 2019 Zeropage Devil's Camp
Sever Side Rendering - 2019 Zeropage Devil's Camp
Multi Page Application (?)
Page reload
Interaction
Single Page Application (SPA)
✓ Client Side Rendering 사용
✓ Rendering: View을 구성하는 단계
✓ Rendering 시점에 따라
Client Side Rendering (CSR)
Server Side Rendering (SSR)
Rendered HTML
Server Side Rendering (traditional way)
Browser Server
Request
Rendered HTML Rendering
Additional Data
Client Side Rendering
Browser Server
Request
Empty HTML
Rendering
Additional Data
view-source
rendered
SPA와 Routing
✓ AJAX
✓ Hash (fragment identifier)
✓ History API (HTML 5)
AJAX
✓ AJAX: Javascript를 사용하여
비동기적으로 데이터를 가져오는 기법
✓ JQuery
AJAX
✓ AJAX: Javascript를 사용하여
비동기적으로 데이터를 가져오는 기법
✓ DOM 조작(페이지의 내용을 조작)을
통해 페이지 이동을 구현
✓ 하나의 주소로 동작하기 때문에 history
관리 불가능
Hash (Fragment Identifier)
✓ subsection을 가리킬 수 있는 기능을 활용
https://en.wikipedia.org/wiki/Fragment_identifier#Basics
✓ 본래 기능과 구분하기 위해 # 대신 #! (hash bang) 또한 사용
✓ 별도의 URL의 형태로 존재하므로, 브라우저에서 history를 관리하는 것이 가능
✓ Vue-Router (history 방식으로도 설정 가능)
History API
✓ 사용자 히스토리 내에서 이동 (back, forward, go === 브라우저 버튼)
✓ https://developer.mozilla.org/ko/docs/Web/API/History
✓ window.history.back( ); window.history.forward( );
✓ pushState, replaceState
✓ 새로고침 없이 세션 히스토리를 조작
✓ React-Router, Angular Router, PJAX
Server Side Rendering
CSR vs SSR
✓ CSR이 초기 loading 속도는 느리지만,
user interaction에 따른 loading 속도는 빠름
✓ SSR의 경우, 초기 loading 속도가 빨라 유저가 더
빠르게 컨텐츠를 이용 가능
✓ SEO 문제 crawler들은 javascript을 실행할 수
없기에, CSR의 경우 완성된(의도된) 페이지가
아닌 빈 페이지를 crawl 할 수 있음
Googlebot
✓ 대단해….
But
✓ Two wave indexing (resource limitation)
CSR을 통해 만들어진 페이지 변화가
즉각적으로 indexing 되지 않음
✓ 네이버, 다음, Bing, Baidu 등 Google 외의
검색엔진 대응
그러면 CSR은 버리나요
✓ 단점을 보완해 봅시다
✓ Hybrid Rendering
✓ Dynamic Rendering
Hybrid Rendering
✓ 초기엔 Server Side Rendering
✓ 이후 user interaction에 따라 Client Side
Rendering
✓ 빠른 초기 loading + 빠른 유저 interaction
✓ Crawler는 Server Side Rendering 된
HTML을 수집  SEO 문제 해결
Dynamic Rendering (구글 추천)
✓ Crawler 에 대한 개별적인 대응
✓ User-Agent detection
✓ 기존 CSR 코드 변경 없이 적용
Dynamic Renderers
○ Puppeteers
○ Rendertron
Next.js
✓ React Framework
✓ Server Side Rendering
✓ Auto Code Splitting
✓ Hulu, Material ui, twitch mobile …
Hello, Next.js !
$ mkdir next-ex && cd next-ex
$ npm init -y
$ npm install react react-dom next
$ mkdir pages
$ npm run dev
Next.js routing?
Sever Side Rendering - 2019 Zeropage Devil's Camp
Server Side Rendering?
✓ initial load 시 SSR 사용
✓ 이후 user interaction 에 따라 CSR
✓ getInitalProps
1. SSR 시점
2. CSR 시점
Sever Side Rendering - 2019 Zeropage Devil's Camp
URL 직접 접근: SSR Link를 통해 접근: CSR

More Related Content

PPTX
Angular, What is SinglePageApplication
PPT
Single Page Web
PDF
웹 브라우저는 어떻게 동작하나? (2)
PPTX
.net core 에서 SignalR 사용해보기
PDF
React.js 세미나
PDF
React.js 세미나
PPTX
1. 웹 어플리케이션 아키텍처
PPTX
Progressive Web Apps
Angular, What is SinglePageApplication
Single Page Web
웹 브라우저는 어떻게 동작하나? (2)
.net core 에서 SignalR 사용해보기
React.js 세미나
React.js 세미나
1. 웹 어플리케이션 아키텍처
Progressive Web Apps

What's hot (12)

PDF
어그로월드 Season1 - Aggro World season 1
PPTX
Rainbow Project Web App
PPTX
Saturday Azure Live 1701 Azure WebApp 개념원리
PPTX
[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기
PPTX
글로벌 웹사이트 구축을 꿈꾸는 당신에게: Azure WebSites and WebJobs
PDF
서버를 위한 동시성 모델과 Staged eventdrivenarchitecture
PDF
I am ASP.NET Core Razor Pages
PDF
CSS Round Display KIG 발표자료
PDF
내 주변 작업하기 좋은 카페 찾아주는 웹앱 "작업공간" - CI/CD
PDF
AWS 구축 경험 공유
PDF
[AWS KR UG 1회 세미나] AWS EB, etc @ 김경민
PDF
[Swift] Proxy
어그로월드 Season1 - Aggro World season 1
Rainbow Project Web App
Saturday Azure Live 1701 Azure WebApp 개념원리
[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기
글로벌 웹사이트 구축을 꿈꾸는 당신에게: Azure WebSites and WebJobs
서버를 위한 동시성 모델과 Staged eventdrivenarchitecture
I am ASP.NET Core Razor Pages
CSS Round Display KIG 발표자료
내 주변 작업하기 좋은 카페 찾아주는 웹앱 "작업공간" - CI/CD
AWS 구축 경험 공유
[AWS KR UG 1회 세미나] AWS EB, etc @ 김경민
[Swift] Proxy
Ad

Similar to Sever Side Rendering - 2019 Zeropage Devil's Camp (20)

PDF
나의 첫 서버 사이드 렌더링(feat. Next.js) - 확대해서 보기
PDF
Vue SSR vs Prerender
PPTX
XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기
PDF
Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)
PPTX
Showroom 2019-react
PDF
쇼핑검색 React 전환 경험 공유
PPTX
프론트엔드 개발 첫걸음
PDF
Place site Design
PPTX
[115] clean fe development_윤지수
PDF
Clean Front-End Development
PPTX
[125]react로개발자2명이플랫폼4개를서비스하는이야기 심상민
PPTX
[부스트캠프 웹・모바일 7기 Tech Talk]안병준_프론트엔드,어쩌다 여기까지
PDF
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
PPTX
리스펙토링 세미나 - 웹 브라우저 동작 개념, Node.js를 통한 서버 이해, REST API
PDF
20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Frontend를 Serverle...
PDF
T11_1_한종원_20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Fron...
PDF
Web and server
PDF
2012, 대한민국 웹 표준, 그 기로에 서다
PDF
Single Page Application : 기획부터 기술적 난관까지
PPTX
Kit-Works Team Study_브라우저 검색 과정_20250704_손문수.pptx
나의 첫 서버 사이드 렌더링(feat. Next.js) - 확대해서 보기
Vue SSR vs Prerender
XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기
Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)
Showroom 2019-react
쇼핑검색 React 전환 경험 공유
프론트엔드 개발 첫걸음
Place site Design
[115] clean fe development_윤지수
Clean Front-End Development
[125]react로개발자2명이플랫폼4개를서비스하는이야기 심상민
[부스트캠프 웹・모바일 7기 Tech Talk]안병준_프론트엔드,어쩌다 여기까지
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
리스펙토링 세미나 - 웹 브라우저 동작 개념, Node.js를 통한 서버 이해, REST API
20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Frontend를 Serverle...
T11_1_한종원_20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Fron...
Web and server
2012, 대한민국 웹 표준, 그 기로에 서다
Single Page Application : 기획부터 기술적 난관까지
Kit-Works Team Study_브라우저 검색 과정_20250704_손문수.pptx
Ad

Sever Side Rendering - 2019 Zeropage Devil's Camp

  • 1. Server Side Rendering (feat. ) 24기 지무근
  • 2. INDEX 1. Single Page Application 2. Server Side Rendering 3. Next.js
  • 5. Single Page Application (SPA) ✓ ✓ 매번 서버로부터 페이지를 받아 오는 것이 아닌 현재 페이지의 내용을 변경하여 표시하는 웹 어플리케이션 ✓ 중복되는 부분 생략 가능 ✓ 실제 페이지의 이동이 일어나지 않음
  • 8. Single Page Application (SPA) No reload ! Interaction Data
  • 11. Multi Page Application (?) Page reload Interaction
  • 12. Single Page Application (SPA) ✓ Client Side Rendering 사용 ✓ Rendering: View을 구성하는 단계 ✓ Rendering 시점에 따라 Client Side Rendering (CSR) Server Side Rendering (SSR)
  • 14. Server Side Rendering (traditional way) Browser Server Request Rendered HTML Rendering Additional Data
  • 15. Client Side Rendering Browser Server Request Empty HTML Rendering Additional Data
  • 17. SPA와 Routing ✓ AJAX ✓ Hash (fragment identifier) ✓ History API (HTML 5)
  • 18. AJAX ✓ AJAX: Javascript를 사용하여 비동기적으로 데이터를 가져오는 기법 ✓ JQuery
  • 19. AJAX ✓ AJAX: Javascript를 사용하여 비동기적으로 데이터를 가져오는 기법 ✓ DOM 조작(페이지의 내용을 조작)을 통해 페이지 이동을 구현 ✓ 하나의 주소로 동작하기 때문에 history 관리 불가능
  • 20. Hash (Fragment Identifier) ✓ subsection을 가리킬 수 있는 기능을 활용 https://en.wikipedia.org/wiki/Fragment_identifier#Basics ✓ 본래 기능과 구분하기 위해 # 대신 #! (hash bang) 또한 사용 ✓ 별도의 URL의 형태로 존재하므로, 브라우저에서 history를 관리하는 것이 가능 ✓ Vue-Router (history 방식으로도 설정 가능)
  • 21. History API ✓ 사용자 히스토리 내에서 이동 (back, forward, go === 브라우저 버튼) ✓ https://developer.mozilla.org/ko/docs/Web/API/History ✓ window.history.back( ); window.history.forward( ); ✓ pushState, replaceState ✓ 새로고침 없이 세션 히스토리를 조작 ✓ React-Router, Angular Router, PJAX
  • 23. CSR vs SSR ✓ CSR이 초기 loading 속도는 느리지만, user interaction에 따른 loading 속도는 빠름 ✓ SSR의 경우, 초기 loading 속도가 빨라 유저가 더 빠르게 컨텐츠를 이용 가능 ✓ SEO 문제 crawler들은 javascript을 실행할 수 없기에, CSR의 경우 완성된(의도된) 페이지가 아닌 빈 페이지를 crawl 할 수 있음
  • 25. But ✓ Two wave indexing (resource limitation) CSR을 통해 만들어진 페이지 변화가 즉각적으로 indexing 되지 않음 ✓ 네이버, 다음, Bing, Baidu 등 Google 외의 검색엔진 대응
  • 26. 그러면 CSR은 버리나요 ✓ 단점을 보완해 봅시다 ✓ Hybrid Rendering ✓ Dynamic Rendering
  • 27. Hybrid Rendering ✓ 초기엔 Server Side Rendering ✓ 이후 user interaction에 따라 Client Side Rendering ✓ 빠른 초기 loading + 빠른 유저 interaction ✓ Crawler는 Server Side Rendering 된 HTML을 수집  SEO 문제 해결
  • 28. Dynamic Rendering (구글 추천) ✓ Crawler 에 대한 개별적인 대응 ✓ User-Agent detection ✓ 기존 CSR 코드 변경 없이 적용 Dynamic Renderers ○ Puppeteers ○ Rendertron
  • 30. ✓ React Framework ✓ Server Side Rendering ✓ Auto Code Splitting ✓ Hulu, Material ui, twitch mobile …
  • 31. Hello, Next.js ! $ mkdir next-ex && cd next-ex $ npm init -y $ npm install react react-dom next $ mkdir pages
  • 32. $ npm run dev
  • 35. Server Side Rendering? ✓ initial load 시 SSR 사용 ✓ 이후 user interaction 에 따라 CSR ✓ getInitalProps 1. SSR 시점 2. CSR 시점
  • 37. URL 직접 접근: SSR Link를 통해 접근: CSR