๐ก TIL 20230815
๋ผ์ด๋ธ๋ฌ๋ฆฌ vs ํ๋ ์์ํฌ, CSR vs SSR
1. ๋ผ์ด๋ธ๋ฌ๋ฆฌ(React) vs ํ๋ ์์ํฌ(Next.js)
React์์๋ ์ฐ๋ฆฌ๊ฐ ๋ชจ๋ ๊ฒ์ ์ง์ ์์ฑํ๊ณ ์ค์ ํด ์ฃผ์๋ ๊ฒ๋ค์ด Next์์๋ ์ด๋ฏธ ๋ง๋ค์ด์ ธ ์๋ค.
1) ๐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
React๋ JavaScript Library
- ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ๋ ํ์ํ ์์(๊ธฐ๋ฅ: ํจ์)์ ๋ชจ์
- ์์ฉ ํ๋ก๊ทธ๋จ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค.
- ๊ฐ๋ฐ์๋ก์ ์ฌ์ฉํ๋ ๊ฒ
2) ๐ ๏ธ ํ๋ ์์ํฌ
Next.js๋ React Framework
- ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ธฐ๋ณธ ํ์ ์ ๊ณตํ์ฌ ๋ณด๋ค ํจ์จ์ ์ผ๋ก ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์๋๋ก ํ๋ ์ํํธ์จ์ด ํ๊ฒฝ
- ์์ฉ ํ๋ก๊ทธ๋จ์ ํ๋ ์์ํฌ์ ์ํด ์ฌ์ฉ๋๋ค.
- ๊ฐ๋ฐ์๊ฐ ์ฝ๋๋ฅผ ๋ถ๋ฌ์ค๋ ๊ฒ
- ์ฝ๋๋ฅผ ์ ์ ํ ์์น์ ์ ์ ๊ธฐ๋ง ํ๋ค๋ฉด framework๋ ๋ด๊ฐ ์ด ์ฝ๋๋ฅผ ๋ถ๋ฌ์์ ๋์ํ๊ฒ ๋ง๋ค์ด์ค
- ๊ธฐ๋ณธ์ ์ผ๋ก ์ง์ด์ง ์ง๊ฐ์ ๊ฐ๋ ์ผ๋ก, ์ฝ๋๋ฅผ ์ ์ ํ๊ฒ ๋ฃ์ด์ฃผ๋ฉด์ ์ง์ ์์ฑ์ํค๋ ๊ฒ์ด์ง๋ง, ์ง ์์ฒด๋ฅผ ์์ ํ ์๋ ์๋ค(=framework ์์ฒด๋ฅผ ์์ ํ ์๋ ์๋ค).
2. CSR vs SSR
์ ์ , ๋ธ๋ผ์ฐ์ , ์๋ฒ๋ฅผ ๋๋์ด์ ์๊ฐํ๋ฉด ์ดํดํ๊ธฐ ์ฝ๋ค.
1) ๐ฅ๏ธ CSR
Client Side Rendering - React.js
์ฌ๊ธฐ์ ๋งํ๋ ํด๋ผ์ด์ธํธ๋ '๋ธ๋ผ์ฐ์ '๋ฅผ ๋ปํ๋ค.
์ฆ, ์ ์ ๊ฐ ๋ณด๋ UI๋ฅผ ๋ง๋๋ ๋ชจ๋ ๊ณผ์ ์ ๋ธ๋ผ์ฐ์ ๊ฐ ํ๋ค.
- ์ ์ ๊ฐ ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์ฑ์ ์ ์ํ๋ฉด,
- ์ฑ์ ๋ธ๋ผ์ฐ์ ์๊ฒ ์๋ฐ์คํฌ๋ฆฝํธ ์ ๋ณด๊ฐ ๋ค์ด์๋ ๋น HTML ๋ฌธ์๋ฅผ ์ ๋ฌํ๋ค. ์ฆ ๋ธ๋ผ์ฐ์ ์๊ฒ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ์ ๋ฌํ๋ค.
- ๋ธ๋ผ์ฐ์ ๋ JS ํ์ผ์ ๋ค์ด๋ก๋ํ๊ณ , ๋์์ ์ ์ ๋ ๋น ํ๋ฉด(์ ์์ ๋ํ ์๋ต)์ ๋ณด๊ฒ ๋๋ค.
- ๋ธ๋ผ์ฐ์ ์์ JS ํ์ผ์ ๋ค์ด๋ก๋๊ฐ ๋๋๋ฉด, ๋ฆฌ์กํธ ์ฝ๋๊ฐ ์๋ JS ํ์ผ์ ์คํํ๋ค.
- ๋ธ๋ผ์ฐ์ ์ ์๋ ๋ฆฌ์กํธ ์ฝ๋๊ฐ UI๋ฅผ ๋ ๋๋งํ๋ค. (๋์ ๋ ๋๋ง)
- ์ ์ ๋ ์ฑ์ด ๋ณด์ฌ์ฃผ๊ณ ์ ํ๋ ํ๋ฉด์ ๋ณผ ์ ์๊ฒ ๋๋ค.
2) ๐ SSR
Server Side Rendering - Next.js
์๋ฒ์์ UI๋ฅผ ๊ตฌ์ฑํ ํ ์ ์ ์๊ฒ ์๋ตํด ํ๋ฉด์ ๋ณด์ฌ์ค๋ค.
- ์ ์ ๊ฐ ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์ฑ์ ์ ์ํ๋ฉด,
- ์๋ฒ์์ ๋ฆฌ์กํธ๋ฅผ ์คํํ๋ค.
- ๋ฆฌ์กํธ๊ฐ ์คํ๋๋ฉด, ๋ฆฌ์กํธ๋ UI๋ฅผ ๋ ๋๋งํ๋ค.
- ๋ ๋๋ง ๋ ๊ฒฐ๊ณผ๋ฅผ ํตํด ๋ธ๋ผ์ฐ์ ์๊ฒ HTML์ ์ ๊ณตํ๋ค. ์ด ๋ ์ ์ ๋ ์ฑ์ ์ด๊ธฐํ๋ฉด(์ ์์ ๋ํ ์๋ต)์ ๋ณด๊ฒ ๋๋ค.
- ์ดํ ๋ธ๋ผ์ฐ์ ๋ ๋ฆฌ์กํธ ์ฝ๋๊ฐ ์๋ JS ํ์ผ์ ๋ค์ด๋ฐ๊ณ ์คํ์ํจ๋ค. ์ด ๋๋ถํฐ๋ ์ผ๋ฐ์ ์ธ ๋ฆฌ์กํธ ์ฑ๊ณผ ๊ฐ์ด CSR์ ๋์(๋์ ๋ ๋๋ง)์ ํ๊ฒ ๋๊ณ , ์ด ๊ณผ์ ์ hydration์ด๋ผ๊ณ ํ๋ค.
hydration์ ๊ณผ์ ์ ๋ค์ ์ ๋ฆฌํ๋ฉด,
- next.js๋ react.js๋ฅผ ๋ฐฑ์๋์์ ๋์์์ผ์ ํ์ด์ง๋ฅผ ๋ฏธ๋ฆฌ ๋ง๋ค์ด์ ์ปดํฌ๋ํธ๋ค์ ๋ ๋๋งํ๋ค.
- ๋ ๋๋ง์ด ๋๋๋ฉด HTML์ด ๋๊ณ next.js๋ ๊ทธ HTML์ ํ์ด์ง์ ์์ค์ฝ๋์ ๋ฃ์ด์ค๋ค.
- ๊ทธ๋ผ ์ ์ ๋ JS์ react.js๊ฐ ๋ก๋ฉ๋์ง ์์๋๋ผ๋ ์ปจํ ์ธ ๋ฅผ ๋ณผ ์ ์๋ค.
- ๊ทธ ํ์ react.js๊ฐ ๋ก๋ฉ๋์์ ๋, ๋จผ์ ์กด์ฌํ๋ ์์ค์ฝ๋๋ค๊ณผ ์ฐ๊ฒฐ ๋์ด์ ์ผ๋ฐ์ ์ธ react.js ์ฑ์ด ๋๋ ๊ฒ์ด๋ค.
hydration ๊ณผ์ ์ ๋ํด์๋ ์๋ ๋ธ๋ก๊ทธ์์ ๋๋ฌด๋๋ ์์ธํ ์ค๋ช ๋์ด์์ด ์ฐธ๊ณ ํ๋ฉด ์ข์๋ฏ ํ๋ค.
Next.js์ ๋ ๋๋ง ๊ณผ์ (Hydrate) ์์๋ณด๊ธฐ
์ฐธ๊ณ ์ฌ์ดํธ
'โ๏ธ What I Learned > TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[TIL] Next.js - SSR vs SSG vs ISR (0) | 2023.08.17 |
---|---|
[TIL] Next.js - redirect์ rewrite (0) | 2023.08.16 |
[TIL] npm vs npx vs yarn (0) | 2023.08.15 |
[TIL] ๊ฐ๋จํ Recoil ์ฒซ ์ฌ์ฉ๊ธฐ (0) | 2023.08.14 |
[WIL] ์ฌํ ํ๋ก์ ํธ - ์ฑ๋ด, private route, ๋ง์ดํ์ด์ง ๊ธฐ๋ฅ ๊ตฌํ ๋์์๋ฆฌ ๋ฐ ํธ๋ฌ๋ธ์ํ ์ ๋ฆฌ (0) | 2023.08.11 |