CSR ๊ณผ SSR ์ ์ฐจ์ด๋ฅผ ํ์ตํ ๋๋ ํ์์ ์ผ๋ก SPA์ MPA์ ๋ํ ์ด์ผ๊ธฐ๊ฐ ๋จผ์ ๋์์ผํ๋ค.
ํด๋น ๋ถ๋ถ์ ๋ํ ๋ด์ฉ์ ์๋ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํด๋ณด๋ฉด ์ข์๊ฒ๊ฐ๋ค.
์ด์ ๋ณธ๊ฒฉ์ ์ผ๋ก CSR๊ณผ SSR์ ๋ํ ์๊ธฐ๋ก ๋์ด๊ฐ๋ณด์.
์ฐพ์๋ณด๋ฉด CSR์ SPA์ ์ฐ๊ฒฐ์ง์ด์ ๋ง์ด ์ค๋ช ์ด ๋์ด์๊ณ , SSR์ MPA์ ์ฎ์ฌ์ ๋ง์ด ์ค๋ช ์ด ๋์ด์๋ค.
์์ ์๋ ์ด๊ฒ๋ง ๋ณด๊ณ ๊ทธ๋ผ ์๋ก์๋ก ๊ฐ์ ๊ฐ๋ ์ธ๊ฐ?๋ผ๋ ์๊ฐ์ ํ์๋๋ฐ ์๋๋ค.
๋ช ์ฌํ ๊ฒ์ CSR์ด ์ ๋ถ SPA๋ฐฉ์์ด ์๋๋ผ๋ ์ !
๊ทธ๋ ๋ค๋ฉด csr, ssr์ด ๋ฌด์์ธ์ง ์์๋ณด๋๋ก ํ์!
CSR(Client Side Rendering)
ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋ ๋๋ง. ๋ง ๊ทธ๋๋ก๋ค
ํด๋ผ์ด์ธํธ ์ชฝ์์ ๋ ๋๋ง์ด ์ผ์ด๋๋ค๋ ์๊ธฐ๋ค.
์์ฒญ์ ๋ณด๋ด๊ณ -> ์๋ต์ ๋ฐ๊ณ -> ๊ทธ๋ฆฌ๊ณ ์ด ๊ณผ์ ๋ฐ๋ณต
๋น์ : ์๋ฒ์์ ๋ณด๋ด์จ ์๋ฆฌ ์ฌ๋ฃ๋ฅผ ๋ธ๋ผ์ฐ์ ๊ฐ ์ง์ ์๋ฆฌํด์ ์ฌ์ฉ์๋ผ๋ ์๋ํํ ๋์ ํ๋ ๊ฒ
์๋ฆฌ ์ฌ๋ฃ = ๋ฐ์ดํฐ
์ง์ ์๋ฆฌ = ๋ ๋๋ง
์๋ = ์ฌ์ฉ์
์๋ฒ๋ ์ฌ๋ฃ๋ง ๋ธ๋ผ์ฐ์ ํํ ๋์ ธ์ฃผ๋ ๊ฒ์ด๊ธฐ์ ํด๋ผ์ด์ธํธ ์ ์ฅ์์ SSR๋ณด๋ค ์๋ฒ์์ ๋ฆฌ์์ค๋ฅผ ๋ฐ๋ ์๊ฐ์ด ์งง๊ณ , ์๋ฆฌ์ฌ๋ฃ๋ฅผ ์ง์ ์๋ฆฌ(๋ ๋๋ง)ํด์ผํ๊ณ , ๋ง๋ ์์ด์ผํ๋๊น(๊ธฐ๋ฅ๋ ๋ค์ด๊ฐ์ผํ๋๊น) ์ฌ์ฉ์์๊ฒ ์์ ํ๊ฒ ๋์ ํ๊ธฐ ์ํด์๋ ์๊ฐ์ด ์ข ๊ฑธ๋ฆด ์ ๋ฐ์ ์๋ค.
SSR(Server Side Rendering)
์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง
์ฃผ๋ก MPA๊ฐ SSR๋ฐฉ์์ผ๋ก ๋ ๋๋งํ๋ค.
๋น์ : ์๋ฒ์์ ์ด๋ฏธ ์๋ฆฌ์ฌ๋ฃ๋ฅผ ์์งํ๊ณ ์กฐ๋ฆฌ๊น์ง ํด์ ์์ฑ๋ ์๋ฆฌ๋ฅผ ๋ธ๋ผ์ฐ์ ๊ฐ ๋ฐ์์ ์๋ํํ ์ ๊ณตํ๋ ๊ฒ
์๋ฒ์์ ์๋ฆฌํ๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ๊ธฐ์ ๋ธ๋ผ์ฐ์ ๋ ์ฒ์์ ๊ธฐ๋ค๋ฆฌ๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ์ง๋ง, ๋ฐ์ผ๋ฉด ๋ฐ๋ก ์ ๊ณตํด์ค ์ ์๊ธฐ ๋๋ฌธ์ CSR๋ณด๋ค๋ UI๋ฅผ ๋ณด์ฌ์ฃผ๋ ์๊ฐ์ด ๋น ๋ฅผ ๊ฒ์ด๋ค.
CSR๊ณผ SSR์ ์ฐจ์ด์ ์ ์ค๋ช ํ๋ ค๋ฉด ์๋ ๋ ๊ฐ๋ ์ ๋ํด์ ์๋ ๊ฒ ํธ๋ฆฌํ๋ค.
TTV(Time To View) : ์ฒ์ ์ฌ์ฉ์์๊ฒ ํ์ด์ง UI ์์๊ฐ ๋ณด์ด๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ธก์ ํ๋ ์งํ
TTI(Time To Interact) : ์ํธ์์ฉ์ด ๊ฐ๋ฅํ ํ์ด์ง๊ฐ ๋๊ธฐ ๊น์ง์ ์๊ฐ์ ์ธก์ ํ๋ ์งํ
์ด ๊ฐ๋ ์ ์๋ฉด, SSR์ CSR๊ณผ ๋น๊ตํ์ ๋ TTV๋ ๋๋ฆฌ์ง๋ง, TTI๋ ๋น ๋ฅด๋ค๊ณ ๋ ํํํ ์ ์๋ค.
๊ทผ๋ฐ ์ฌ์ฉ์์ ์ฅ์์๋ TTI์ TTV ๋๋ง๋ฆฌ ํ ๋ผ๋ฅผ ๋ค ์ก์์ผ ์ข์๊ฑฐ ์๋๊ฐ..?
์๋ง ๊ทธ๋ฌ๊ธฐ ์ํด์ ๋ค๋ค ์ต์ ์ ๋ฐฉ๋ฒ์ด ๋ฌด์์ธ์ง์ ๋ํด์ ๋ง์ด ์๊ฐํ๊ณ ์๋ ๊ฒ ๊ฐ๋ค.
์ด๊ฑฐ๋ ๊ณ์ ์๊ฐํด๋ณด๊ณ ๊ตฌํํด๋ณด๊ณ ํ๋ฉด์ ์ฐพ์์ผํ๋ ๋ถ๋ถ์ธ ๊ฑธ๋ก ๋ณด์ธ๋ค.
์ถ๊ฐ์ ์ผ๋ก, Next.js๋ฅผ ๋ณด๋ฉด ๋ง์ด ๋ฐ๊ฒฌํ ์ ์๋ SSG๋ ๋ฌด์์ธ๊ฐํ๋ฉด,
์ด๊ฒ ๋จผ์ ์๊ฐ๋ฌ์ง๋ง, ์ด๊ฑด ์๋๋ค..
SSG (Static Site Generation)
์น์ฌ์ดํธ์ HTML, CSS, Javascript ํ์ผ์ ๋ฐํ์์ ๋์ ์ผ๋ก ์์ฑํ๋ ๋์ ๋น๋ ์์ ์์ ๋ฏธ๋ฆฌ ์์ฑํ๋ ์ฌ์ดํธ ์์ฑ ์ ๋ต
๋์ ์ผ๋ก ์ฌ์ฉ์์ ์ํธ์์ฉํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅ
๊ทธ๋ ๋ค๋ฉด ๊ตณ์ด ์ ์ฌ์ฉํ ๊น...?
SSG๊ฐ์ ๊ฒฝ์ฐ๋ ๊ฐ์ ํ์ด์ง๊ฐ ๋ก๋๋๊ณ ํ๋ฉด์ ๋์ค๊ธฐ ๋๋ฌธ์ ์ด๊ธฐ๊ตฌ๋์๋๊ฐ ๋งค์ฐ ๋น ๋ฅด๊ณ , js๋ฅผ ํตํ ๋น๋ฒํ ๋ฐ์ดํฐ ๊ตํ์ด ์๊ฑฐ๋ ์ ์ด์ ๋ณด์์ธก๋ฉด์์ ์ ๋ฆฌํ๊ณ , ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋ธ๋ก๊ทธ, ์ด๋ ฅ์์ ๊ฐ์ด ๋ณ๋์ด ์์ฃผ ์ผ์ด๋์ง์๋ ์ฑ์ ๊ตฌ์ถํ ๋ ์ ํฉํ๋ค.
์์๋ก๋ Gatsby, jekyll๋ฑ์ด ์๋ค. (์ํ ์ด๋์ ์ด ๋๊ตฌ๋ค๋ก ๋ธ๋ก๊ทธ๋ฅผ ๋ง์ด ๊ฐ์คํ๋ ๊ฑฐ์๊ตฌ๋,,)
์ด๋ฐ ํน์ง์ ๊ฐ์ง๊ณ ์๋ค๋ฉด ๋น์ฐํ ๋์ ์ฝํ ์ธ ๋ฅผ ํฌํจํ๊ณ ์์๋์๋ SSG๊ฐ ์ ํฉํ์ง ์๊ฒ ๋ค!
์ ๋ฆฌ๋ฅผ ํด๋ณด์๋ฉด,
๊ทน๋จ์ ์ธ CSR๊ณผ SSR์ ์๋ก ์๋ฐ๋๋ค!
- CSR์ ์ฅ์ ์ SSR์ ๋จ์ , CSR์ ๋จ์ ์ SSR์ ์ฅ์ ์ด๋ค.
SSR์ ํญ์ SSG๋ณด๋ค ํญ์ ๋ณ๋ก์ธ๊ฐ?
- ์๋๋ SSG๋ณด๋ค ๋๋ฆด ์์๋ค.
ํ์ง๋ง SSR์ ์ฅ์ ์ SSG์์ ๊ฐ๋ฅํ ๊ฒ๋ณด๋ค ๋ ๋ง์ "์ค์๊ฐ" ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ๋ณด๋ค ์์ ํ ์์ฒญ์ ๋ํ ์๋ต(response)์ ํ๋ ๊ฒ์ด๋ค.
ISR(Incremental Static Regeneration)
SSG์ ๋์ผํ๊ฒ ๋น๋ ์์ ์ ํ์ด์ง๋ฅผ ์์ฑํ๋ค.
SSG์ ๋จ์ ์ด์๋ ์ํธ์์ฉ์ด ๋์ ์ผ๋ก ๋์ง ์๋๋ค๋ ๊ฒ์ ๋ณด์ํ์ฌ ๋น๋ํ ๋ ์ ์ ์ฌ์ดํธ๋ฅผ ์ฌ์ฉํ๋ ๋์ ์, ๋ฐํ์์ ํ์ด์ง ๋จ์๋ก ์ ์ ์์ฑ๋๋๋ก ํ์ฌ์ ๋์ ์ํธ์์ฉ์ด ํ์ํ ๋๋ง๋ค ๋น๋ (์ผ์ ์๊ฐ์ด ์ง๋ ํ ํ์ด์ง๋ฅผ ์๋ก ์์ฑ)
์ฆ, ์ต์ ๋ฐ์ดํฐ๋ก ์ ๋ฐ์ดํธ๊ฐ ๋๋ค๋ ๊ฒ์ด๋ค.
๊ทธ๋์ ์ ์ฒด ํ์ด์ง๋ฅผ ์ฌ๋น๋ ํ์ง ์์๋ ๋๋ค.
ex, Next.js Nuxt.js
๊ทธ๋ผ ํ๋ก์ ํธ์์ CSR, SSG, SSR ์ค์ ์ด๋ค ๋ฐฉ์์ผ๋ก ๊ฐ๋ฐ์ ํด์ผํ ๊น?
๊ฐ ๋ ๋๋ง ๋ฐฉ์์ ์ฅ๋จ์ ์ด ๋ช ํํ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐํ๋ ค๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๊ฒฉ์ ๊ณ ๋ คํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ค์ํ๋ค.
์ด ์ธ ๋ ๋๋ง ๋ฐฉ์ ์ค, ์ด๋ ๊ฒ๋ ์๋ฒฝํ ์์ ํธํ์ด ๋์ง ์์ผ๋, ๊ฐ ๋ ๋๋ง์ ์ฅ๋จ์ ์ ์ดํดํ๊ณ ๋ณธ์ธ์ด ๋ง๋๋ ค๋ ์๋น์ค์ ์ ํฉํ ๋ ๋๋ง ๊ธฐ๋ฒ์ ์ ํํ์.
ํญ์ ์๊ฐํ์ง๋ง, ์ฝ๋ฉ ๊ตฌํ์๋ ์ ๋ต์ ์๋ ๊ฒ ๊ฐ๋ค. ๊ทธ ์ํฉ์ ๋ง๊ฒ, ํด๋น ๋ฐฉ์์์ ์ฅ์ ์ ๊ทน๋ํ์ํฌ ์ ์์ ๋งํ ์ํฉ์ ์ ํ๋จํด์ ๊ฒฐ์ ํ๋ฉด ๋๋ค.
์ฐธ๊ณ
https://www.youtube.com/watch?v=MGTKRYJ020o
https://velog.io/@hanei100/TIL-SSR-vs-CSR-%EC%B0%A8%EC%9D%B4
https://tecoble.techcourse.co.kr/post/2021-09-10-ssr/
https://velog.io/@altmshfkgudtjr/CSR-SSR-SSG-%EC%A1%B0%ED%99%94%EB%A5%BC-%EC%9D%B4%EB%A3%A8%EB%8B%A4
'WEB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
styled-components๋ฌด์์ tailwind CSS ๋์ ๊ธฐ - 1 (0) | 2024.01.08 |
---|---|
๊ณผ์ฐ ๋๊ตฌ๋ฅผ ์ํ ์น ์ ๊ทผ์ฑ์ธ๊ฐ (0) | 2023.11.22 |
Sass์ฌ์ฉ ์ค๋ฅ & Sass๋ฅผ CSS๋ก ๋ฐ๊พธ๊ธฐ (0) | 2021.01.13 |
Input ํ๊ทธ, ์์ฑ (0) | 2021.01.03 |