์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง (Server Side Rendering)์ ์ค์๋ง๋ก,
๋ฆฌ์กํธ๋ฅผ ๊ณต๋ถํ ๋ CSR๊ณผ ํจ๊ป ๋ฑ์ฅํด ๋๋ฅผ ๊ดด๋กญํ๋ ์น๊ตฌ๋ค.
SSR์ ๊ฐ๋จํ ๋งํด์ ์๋ฒ์์ ๋ ๋๋ง ์ค๋น๋ฅผ ๋๋ธ ํ ํด๋ผ์ด์ธํธ์ ์ ๋ฌํ๋ ๋ฐฉ์์ ๋งํ๋ค.
ํด๋ผ์ด์ธํธ์์ ์์ฒญ์๋ง๋ค ํ์ด์ง๊ฐ ์๋ก๊ณ ์นจ๋๋ฉฐ ๋ค์๊ณผ ๊ฐ์ ์์๋ก ๋ ๋๋ง์ด ์งํ๋๋ค.
- ์๋ฒ์์ ์ฆ์ ๋ ๋๋ง์ด ๊ฐ๋ฅํ HTML์ ํด๋ผ์ด์ธํธ์๊ฒ ๋ณด๋. ์ฆ, ํ๋ฉด์ ๋จผ์ ๊ทธ๋ฆผ.
- ์ด ๋ ์ ์ ๊ฐ ํ์ด์ง๋ฅผ ๋ง์ง๊ฒ ๋๋ฉด, ์์ง JS๊ฐ ์ฝํ๊ธฐ ์ ์ด๋ผ ์ฌ์ดํธ๋ฅผ ์กฐ์(์ธํฐ๋์ )ํ ์ ์์.
- ๊ทธ ์ฌ์ด์ ๋ชฐ๋ ํด๋ผ์ด์ธํธ๋ JS๋ฅผ ์ด์ฌํ ๋ค์ด๋ฐ์.
- ๋ธ๋ผ์ฐ์ ๊ฐ ๋ค์ด๋ฐ์ JS๋ฅผ ์ปดํ์ผํ๊ณ ๋์์ผ ๊ธฐ์ตํ๊ณ ์๋ ์ฌ์ฉ์ ์กฐ์์ ์คํํ๋ฉฐ ์ธํฐ๋์ ์ด ๊ฐ๋ฅํด์ง.
ํด๋ผ์ด์ธ๋ ์ฌ์ด๋ ๋ ๋๋ง (Client Side Rendering)์ ์ฝ์๋ค.
์๋ฒ์ ์์ฒญ์ด ๋ค์ด์ค๋ฉด HTML๊ณผ JS๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ์ ๋ฌํ๊ธฐ์ ํด๋ผ์ด์ธํธ ์ธก์์ ๋ ๋๋ง์ ์งํํ๋ค.
SPA์์ ์ฐ์ด๋ ๋ฐฉ์์ผ๋ก์จ ํ๋์ ๋น ํ์ด์ง๋ฅผ ์๋ฒ์ธก์์ ์ ๊ณตํ๊ณ ,
View์ ๋ํด์๋ ํด๋ผ์ด์ธํธ์์ JS๋ฅผ ํตํด ๋ ๋๋ง ํ๋ ๋ฐฉ์์ด๋ค.
- CDN์ด HTML ํ์ผ๊ณผ JS์ ์ ๊ทผํ ์ ์๋ ๋งํฌ๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ๋ณด๋.
(CDN : ์ ์ ์์ฒญ์ '๋ฌผ๋ฆฌ์ ์ผ๋ก' ๊ฐ๊น์ด ์๋ฒ์์ ์์ฒญ์ ์๋ตํ๋ ๋ฐฉ์ - ATM ๊ฐ์ ์ญํ )- ํด๋ผ์ด์ธํธ๊ฐ HTML๊ณผ JS๋ฅผ ๋ค์ด๋ก๋
** SSR๊ณผ ๋ฌ๋ฆฌ ์ ์ ๋ ์๋ฌด๋ฐ ํ๋ฉด๋ ๋ณด์ง ๋ชปํ๊ฒ ๋จ **- JS ์คํ ํ ํ๋ฉด์ด ์ด๋์ ๋ ๊ทธ๋ ค์ง๊ณ , ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๊ธฐ ์ํด API๋ก ์๋ฒ์ ํธ์ถ => ์๋ต
SSR์ ํ์ํ HTML + ์คํฌ๋ฆฝํธ๋ง, CSR์ HTML + CSS + ๋ชจ๋ ์คํฌ๋ฆฝํธ๋ฅผ ํ๋ฒ์ ๋ถ๋ฌ์ค๋ฏ๋ก ๋ณดํต SSR์ด ๋ ๋น ๋ฅด๋ค.
CSR์ด ์ฒซ ๋ก๋ฉ๋ ์ ๋ถ ๋ฐ์์๊ธฐ์ ๋ ๋น ๋ฅด๋ค.
๋ฐ๋ฉด, SSR์ ๋ก๋ฉ ๊ณผ์ ์ ์ ๋๋ก ๋ค์ ์คํํ๋ฏ๋ก ๋๋ฆฌ๋ค.
CSR์ ๋งจ ์ฒ์ HTML ํ์ผ์ด ๋น์ด์๊ธฐ์ ํฌ๋กค๋ฌ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์์งํ ์ ์๋ค.
๋ฐ๋ผ์ SSR์ด SEO์ ๋ ์ ๋ฆฌํ๋ค.
SSR์ด ๋งค๋ฒ ์๋ฒ์ ์์ฒญ์ ํ๊ธฐ ๋๋ฌธ์ ํด๋น ์์์ ๋ ๋ง์ด ์ฌ์ฉํ๋ค.
CSR์ ํด๋ผ์ด์ธํธ์๊ฒ ์ผ์ ํ ์คํ๋ฏ๋ก ์๋ฒ ๋ถํ๊ฐ ์ ๋ค.
SSR์ ๊ธฐ์ค์ผ๋ก ์ ํฉํ ์ฌ์ฉ ํ๊ฒฝ์ ๋ํด ๋งํด๋ณด๊ณ ์ ํ๋ค.
์ด์ ๋ฐ๋๋๋ ํ๊ฒฝ์์๋ CSR์ ์ฐ๋ ๊ฒ์ด ์ข๋ค.
- ๋คํธ์ํฌ๊ฐ ๋๋ฆฐ ํ๊ฒฝ
- SEO๊ฐ ํ์ํ ๊ฒฝ์ฐ
- ์ต์ด ๋ก๋ฉ์ด ๋นจ๋ผ์ผ ํ๋ ๊ฒฝ์ฐ
- ์ธํฐ๋์ ์ด ๋ณ๋ก ์๋ ์น์ฌ์ดํธ๋ฅผ ๊ฐ๋ฐํ๋ ๊ฒฝ์ฐ
(์ธํฐ๋์ ์ด ๋ง์ ์ฌ์ดํธ๋ฅผ CSR๋ก ํด์ผํ๋ ์ด์ ๋, ์์ ๋ ๋๋ง์ ๋ง์ ์ธํฐ๋์ ์ ๋ชปํ๊ฒ ํ๋ ๊ฒ์ด UX ์ธก๋ฉด์์ ๋ ๋ซ๊ธฐ ๋๋ฌธ)- ๋ฉ์ธ ์คํฌ๋ฆฝํธ๊ฐ ๋ฌด๊ฑฐ์ด ๊ฒฝ์ฐ
=> SSR๊ณผ CSR์ ๋ํด ๊ณต๋ถํ๊ณ ๋ณด๋ ์ ๋ฆฌ์กํธ๊ฐ CSR ๊ธฐ๋ฐ์ธ์ง์ ๋ํด ์ ์ ์์๊ณ , SEO์ ๋ํ ์ทจ์ฝ์ ๋๋ฌธ์ SSR์ ์น๊ฑฐ๋ ๋ฅ์คํธ๋ฅผ ์ด์ฉํ๋ค๋ ๊ฒ๋ ๋ฐฐ์ฐ๊ฒ ๋๋ค.
SSR์ ๋จ์ ์ ๋ถํ์ํ ๋ถ๋ถ๊น์ง ๋ ๋๋ง๋๋ค๋ ๊ฒ์ด๊ณ ,
CSR์ ๋จ์ ์ ์ด๊ธฐ ์ง์
์๋๊ฐ ๋๋ฆฌ๋ฉฐ SEO์ ์ทจ์ฝํ๋ค๋ ๊ฒ์ด๋ค.
ํด๋น ๋จ์ ์ ํด๊ฒฐํ๋ฉด์ ๊ฐ ๋ฐฉ์์ ์ฅ์ ์ ์ด๋ฆฌ๊ณ ์ Next.js๋ผ๋ ํ๋ ์์ํฌ๊ฐ ์๊ฒผ๋ค.
Next.js๋ ์ฒซ ํ์ด์ง๋ฅผ ๋ฐฑ์๋ ์๋ฒ์์ ๋ ๋๋งํ์ฌ ๋ฐ์ดํฐ๊ฐ ์ฑ์์ง html์ ๋ฐ์ SEO ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ,
๋ค์ ํ์ด์ง๋ถํด CSR ๋ฐฉ์์ ์ ์ฉํ์ฌ ํ์ํ ๋ฐ์ดํฐ ๋ถ๋ถ๋ง ๊ฐฑ์ ํด ์๋ฒ ๋ถํ๋ฅผ ์ค์ด๊ฒ ํ ๊ฒ์ด๋ค.
SSR, CSR ๋ฐฉ์์ ์ ๋ต์ด ์๋ ๊ฒ์ ์๋๋ค. ๊ทธ์ ๊ฐ ๋ฐฉ์์ ์ฅ๋จ์ ์ ํ์ ํ์ฌ ํ๋ก์ ํธ ํ๊ฒฝ ๋ฐ ํน์ง์ ๋ฐ๋ผ ํ์ํ ๊ฒ์ ์ทจ์ฌ์ ํํ๋ ๊ฒ์ด ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์ด๋ค.
๐ ์ฐธ๊ณ ์๋ฃ
SSR๊ณผ CSR์ ์ฐจ์ด
์๋ฒ์ฌ์ด๋ ๋ ๋๋ง , ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋ ๋๋ง
CSR vs SSR (feat. Next.js)
SSR vs CSR ๋น๊ต ์ค๋ช
, Next.js๊ฐ ํ์ํ๊ฒ ๋ ์ด์