ํ๋ก์ ํธ๊ฐ SSR์ธ์ง CSR์ธ์ง ํ์ธํด๋ณด๊ธฐ
SSR(Server Side Rendering) | CSR(Client Side Rendering) | |
์ค๋ช | ์ ํต์ ์ธ ์น ๋ฐฉ์์ ์๋ฏธํ๋ฉฐ ํ์ด์ง๊ฐ ์๋ก๊ณ ์นจ ๋ ๋๋ง๋ค ์๋ฒ๋ก๋ถํฐ ๋ฆฌ์์ค(๊ด๋ จ๋ HTML, CSS, JS ํ์ผ ๋ฐ ๋ฐ์ดํฐ)๋ฅผ ์ ๋ฌ๋ฐ์ ํ๋ฉด์ ๋ ๋๋ง ํ๋ ๋ฐฉ์. ์์ฒญ์๋ง๋ค ์๋ก๊ณ ์นจ์ด ์ผ์ด๋๋ฉฐ ์๋ฒ์ ์๋ก์ด ํ์ด์ง์ ๋ํ ์์ฒญ์ ํ๋ ๋ฐฉ์ => ์ด๋ฏธ ๋ค ๋ง๋ค์ด์ง DOM์ ๋ฐ์. |
์ต์ด ๋ก๋์ ํ์ํ ํ์ผ๋ค์ ์ ๋ถ ๋ฐ๊ณ , ์ฌ์ฉ์์ ์ธํฐ๋ ์
์ ๋ฐ๋ผ์ ํด๋ผ์ด์ธํธ๋จ์์ ๋ฐ์์ ๋๋๋ง์ ํด์ฃผ๋ ๋ฐฉ์ => ๊ธฐ๋ณธ ํ๋ง ๋ฐ๊ณ , ๋ธ๋ผ์ฐ์ ์์ ๋์์ผ๋ก DOM์ ๊ทธ๋ฆผ |
์ฅ์ | ์ด๊ธฐ ํ๋ฉด์ ๋ ๋๋ง ์๋๊ฐ ๋น ๋ฅด๋ฉฐ, SEO์ ์ต์ ํ๋์ด ์์. | ๋ ๋๋ง ์๋๊ฐ ๋น ๋ฆ |
๋จ์ | ๋งค ๋๋๋ง๋ง๋ค ์๋ฒ๋ฅผ ๊ฑฐ์นจ์ผ๋ก ์๋๊ฐ ๋๋ฆผ. | ์ด๋ฐ์ ๋ผ๋๋ง ๋ค์ด๋ฐ๊ธฐ ๋๋ฌธ์, SEO์ ์ทจ์ฝ, ์ด๊ธฐ ํ๋ฉด์ ๋ ๋๋ง ์๋๊ฐ ๋๋ฆผ. |
* SEO(Search Engine Optimization) : ๊ฒ์ ์์ง ์ต์ ํ
https://solo5star.dev/posts/44/
React SSR (์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง) ์๊ฒ ์์ํด๋ณด๊ธฐ (React.hydrateRoot)
React์ SSR(์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง) ๊ฐ๋ ์ ๋ํด React.hydrateRoot์ ํจ๊ป ๊ฐ๋ณ๊ฒ ์์ํด๋ด ์๋ค
solo5star.dev
์ด ๋ธ๋ก๊ทธ์ ๋์์์ด ์ดํดํ๋ ๋ฐ์ ํฐ ๋์์ด ๋์๋ค.
1. ๋คํธ์ํฌ ํญ ํ์ธ
Network ์์ localhost๋ฅผ ์ ํํ, Response๋ฅผ ๋ณด๋ฉด bodyํ๊ทธ์ ์๋ฌด๋ฐ ๋ด์ฉ์ด ์๋ค => CSR
Element์์๋ ์์ ๋ค๋ฅด๊ฒ body ํ๊ทธ ํ์์ ์ฌ๋ฌ ๋ด์ฉ๋ค์ ๋ณผ ์ ์๋๋ฐ, ์ด ๋ด์ฉ๋ค์ bundle.js๋ฅผ ํตํด ๋ง๋ค์ด์ก๋ค๊ณ ํ๋ค.
1. ์ฌ์ฉ์๊ฐ ์ฌ์ดํธ์ ์ ์ํ๋ฉด HTML , CSS , JS (bundle.js) ํ์ผ์ ๋ด๋ ค๋ฐ๋๋ค.
2. HTML ์๋ ๋ผ๋๋ง ์๋ ์ํ์ด๊ณ ํด๋ผ์ด์ธํธ๋ bundle.js ๋ฅผ ํด์ํด์ ๋ ๋๋งํ๋ค.
- ์ถ์ฒ
์๋ฒ์ฌ์ด๋ ๋ ๋๋ง (SSR) ๊ณผ ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋ ๋๋ง (CSR) ์ ๋ํด
๊ธฐ๋ณธ์ ์ผ๋ก ์น์ ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ก ๋๋์ด์ง๋ค. ํด๋ผ์ด์ธํธ๋ ์์ฒญ์ ๋ณด๋ด๊ณ ์๋ฒ๋ ๊ทธ ์์ฒญ์ ๋ณด๊ณ ํน์ ์ ๋ณด๋ฅผ ์๋ตํด ์ฃผ๊ณ , ํด๋ผ์ด์ธํธ ์ธก์์๋ ์๋ฒ๋ก๋ถํฐ ์๋ต๋ฐ์ html ๋ฌธ์๋ฅผ ๋ณด๊ณ D
velog.io
2. Disable JavaScript
JavaScript๋ฅผ disableํ๋ฉด, ํ๋ฉด์ enableํด์ผ runํ ์ ์๋ค๊ณ ๋ฌ๋ค. => CSR
React๋ ์๋ CSR(Client-Side Rendering) ๋ฐฉ์์ผ๋ก ๋์ํ์ง๋ง, Next.js์ ๊ฐ์ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ฒ์์ ์ด๊ธฐ HTML์ ๋ ๋๋งํด ๋ธ๋ผ์ฐ์ ๋ก ์ ๋ฌํ ์ ์์ต๋๋ค.
์ด๋์ ์์ฆ Next.js ๋ฅผ ๋ง์ด ์ฐ๋๋ณด๋ค.