1. ํ๋ฆฌ๋ ๋๋ง(Pre-rendering)
ํ๋ฆฌ๋ ๋๋ง์ ์๋ฒ๊ฐ ํ์ด์ง๋ฅผ ์ฌ์ฉ์๊ฐ ์์ฒญํ๊ธฐ ์ ์ ๋ฏธ๋ฆฌ ๋ ๋๋งํด์ ์ค๋นํด๋๋ ๋ฐฉ์์ ๋๋ค. ํ์ด์ง๋ฅผ ๋ฏธ๋ฆฌ ์์ฑํ์ฌ ์บ์ฑํด ๋๋ ๊ฒ์ด ํน์ง์ ๋๋ค.
- ํน์ง
- ์ ์ ์์ฑ: ๋น๋ํ ๋ ๋ ๋๋ง
- ์๋ฒ์ฌ์ด๋ ๋ ๋๋ง: ๋ฆฌํ์คํธ๊ฐ ๋ค์ด์ค๋ฉด ๋ ๋๋ง
- ์ฅ์ : ๋น ๋ฅธ ๋ก๋ฉ ์๋ (ํ์ด์ง๊ฐ ๋ฏธ๋ฆฌ ์ค๋น๋์ด ์์), SEO์ ์ ๋ฆฌ
- ํ๋ฆฌ ๋ ๋๋ง์ ์ฌ์ฉํ๋ฉด ํ๋ฆฌํ์น๋ณด๋ค ํ์ ์๊ฐ์ด ๋นจ๋ฆฌ์ง๊ณ ๋ ๋ง์ ๋ฆฌ์์ค๋ฅผ ํ์๋ก ํ๋ ๋์ ์ฌ์ฉ์ ๊ฒฝํ์ด ํฅ์๋ฉ๋๋ค.
- ๋จ์ : ๋์ ์ธ ์ปจํ ์ธ ์ ๋ํด ์ ์ฉํ๊ธฐ ์ด๋ ต๊ณ , ๋ฏธ๋ฆฌ ์ค๋น๋ ํ์ด์ง๋ง ์ ๊ณต ๊ฐ๋ฅ
ํ๋ฆฌ๋ ๋๋ง์ด ์ ํฉํ ๊ฒฝ์ฐ
- ์์ฃผ ๋ณ๊ฒฝ๋์ง ์๋ ์ฝํ
์ธ : ์๋ฅผ ๋ค์ด ๋ธ๋ก๊ทธ, ํฌํธํด๋ฆฌ์ค ์ฌ์ดํธ ๋ฑ ์์ฃผ ์
๋ฐ์ดํธ๋์ง ์๋ ์ฝํ
์ธ ๊ฐ ๋ง์ ๋.
- ex) ๋ธ๋ก๊ทธ, ํฌํธํด๋ฆฌ์ค ์ฌ์ดํธ
- SEO๊ฐ ์ค์ํ ํ์ด์ง: ๊ฒ์ ์์ง์ด ํฌ๋กค๋งํ ์ ์๋๋ก HTML์ ์ฌ์ ์ ์ค๋นํ๋ ๊ฒ์ด ํ์ํ ๋.
- ex) ๊ธฐ์ ์ ๋๋ฉ ํ์ด์ง
- ์ด๊ธฐ ๋ก๋ฉ ์๋๋ฅผ ๋์ด๊ณ ์ถ์ ๋: ์ฌ์ฉ์๊ฐ ์ฆ์ ์ฝํ ์ธ ๋ฅผ ๋ณผ ์ ์๋๋ก ํ๊ณ ์ถ์ ๋.
2. ์ ์ ์์ฑ(Static Generation)
์ ์ ์์ฑ์ ์ฝ๊ฒ ๋งํด ๋น๋ ์์ ์ ํ์ด์ง๋ฅผ HTML๋ก ๋ฏธ๋ฆฌ ๋ง๋ค์ด ๋๋ ๋ฐฉ์์ ๋๋ค. ๊ทธ ๊ฒฐ๊ณผ๋ก ๋ชจ๋ ํ์ด์ง๊ฐ ์ ์ ์ผ๋ก ์์ฑ๋๋ฉฐ, ์๋ฒ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ํ์ํ์ง ์์ต๋๋ค.
- ํน์ง: ๋น๋ ์์ ์ ์ ์ ํ์ผ๋ก HTML ํ์ด์ง ์์ฑ
- ์ฅ์ : ์ฑ๋ฅ์ด ๋งค์ฐ ๋ฐ์ด๋จ, ์บ์๋ฅผ ์ฝ๊ฒ ์ฌ์ฉ ๊ฐ๋ฅ, ๋ณด์์ฑ์ด ๋์
- ๋จ์ : ํ์ด์ง๊ฐ ๋ฏธ๋ฆฌ ์์ฑ๋๊ธฐ ๋๋ฌธ์ ์์ฃผ ๋ณ๊ฒฝ๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ ํ๋ฆ
์ ์ ์์ฑ์ด ์ ํฉํ ๊ฒฝ์ฐ
- ์ฝํ
์ธ ๊ฐ ๊ณ ์ ์ ์ด๊ฑฐ๋ ์์ฃผ ๋ฐ๋์ง ์๋ ๊ฒฝ์ฐ: ๋ฐ์ดํฐ๊ฐ ์์ฃผ ๋ณ๊ฒฝ๋์ง ์์ผ๋ฉฐ, ์ฃผ๊ธฐ์ ์ธ ๋น๋๋ฅผ ํตํด ๋ณ๊ฒฝ๋ ์ฝํ
์ธ ๋ง ๋ค์ ์์ฑํ ์ ์์.
- ex) ๋ฌธ์ํ ์ฌ์ดํธ, ์ ํ ์๊ฐ ์น์ฌ์ดํธ
- ๋ฎ์ ์ ์ง ๋น์ฉ์ ์ํ ๋: ์ ์ ํ์ผ์ ์ฌ์ฉํ๋ฏ๋ก ์๋ฒ ์ฒ๋ฆฌ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์์ด๋ ๋น ๋ฅธ ํ์ด์ง ์ ๊ณต ๊ฐ๋ฅ.
- ๋น ๋ฅธ ๋ฐฐํฌ์ ๋์ ์ฑ๋ฅ์ด ์๊ตฌ๋ ๋: ๋ฏธ๋ฆฌ ์์ฑ๋ ์ ์ ํ์ผ์ด๋ฏ๋ก ๋น ๋ฅด๊ณ ๋ณด์์ ์ผ๋ก๋ ์์ ํจ.
- ex) ๋ง์ผํ ํ์ด์ง
ํ๋ฆฌ๋ ๋๋ง๊ณผ ์ ์ ์์ฑ์ ์ฐจ์ด
์ฌ์ค ์ด ๋ ์ฉ์ด๋ ๋์ผํ ๊ฐ๋ ์ผ๋ก ๋ง์ด ํผ์ฉ๋๊ธฐ๋ ํฉ๋๋ค.
'ํ๋ฆฌ๋ ๋๋ง'์ ๋จ์ํ ๋ฏธ๋ฆฌ ๋ ๋๋งํ๋ ๋ชจ๋ ๋ฐฉ์์ ํฌ๊ดํ๋ ๋์ ๊ฐ๋ ์ด๊ณ ,
'์ ์ ์์ฑ'์ ๊ทธ์ค ์ ์ HTML ํ์ผ๋ก ๋ฏธ๋ฆฌ ์์ฑํ๋ ๊ฒ์ ๊ตฌ์ฒด์ ์ผ๋ก ์๋ฏธํฉ๋๋ค.
3. ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง
์๋ฒ์ฌ์ด๋ ๋ ๋๋ง(SSR, Server-Side Rendering): ์ฌ์ฉ์๊ฐ ์น ํ์ด์ง๋ฅผ ์์ฒญํ ๋, ์๋ฒ์์ ํด๋น ํ์ด์ง์ HTML์ ์ค์๊ฐ์ผ๋ก ์์ฑํ๊ณ ์ด๋ฅผ ํด๋ผ์ด์ธํธ(๋ธ๋ผ์ฐ์ )์ ๋ณด๋ด๋ ๋ฐฉ์์ ๋๋ค. ์ฆ, ์๋ฒ๊ฐ ํ์ด์ง๋ฅผ ๋์ ์ผ๋ก ๋ ๋๋งํ ํ ์์ฑ๋ HTML์ ํด๋ผ์ด์ธํธ๋ก ์ ์กํ๋ ๊ฒ์ ๋๋ค.
SSR์ ๋์ ๋ฐฉ์
- ์ฌ์ฉ์๊ฐ ์น ํ์ด์ง๋ฅผ ์์ฒญํฉ๋๋ค.
- ์๋ฒ๋ ์์ฒญ์ ๋ฐ์์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๊ณ , ํด๋น ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก HTML ํ์ด์ง๋ฅผ ์์ฑํฉ๋๋ค.
- ์๋ฒ๋ ์์ฑ๋ HTML์ ์ฌ์ฉ์์๊ฒ ์๋ต์ผ๋ก ์ ์กํฉ๋๋ค.
- ์ฌ์ฉ์์ ๋ธ๋ผ์ฐ์ ๋ ์๋ฒ์์ ๋ฐ์ HTML์ ๋ ๋๋งํ์ฌ ํ๋ฉด์ ํ์ํฉ๋๋ค.
- ์ดํ ํ์์ ๋ฐ๋ผ JavaScript๊ฐ ๋ก๋๋๊ณ ์คํ๋์ด ์ธํฐ๋์ ์ ์ํ ํด๋ผ์ด์ธํธ ์ธก ๋์์ด ์ถ๊ฐ๋ฉ๋๋ค.
SSR์ ์ฅ์
- ๋น ๋ฅธ ์ด๊ธฐ ๋ก๋ฉ ์๋: SSR์ ์๋ฒ์์ ์์ ํ HTML์ ์์ฑํด ๋ณด๋ด๊ธฐ ๋๋ฌธ์, ์ฌ์ฉ์๋ ๋ธ๋ผ์ฐ์ ์์ ๋ฐ๋ก ์ฝํ ์ธ ๋ฅผ ๋ณผ ์ ์์ต๋๋ค. ํด๋ผ์ด์ธํธ ์ธก์์ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ฉฐ ํ์ด์ง๋ฅผ ๋ ๋๋งํ๋ CSR ๋ฐฉ์์ ๋นํด, ์ด๊ธฐ ๋ก๋ฉ ์๋๊ฐ ๋น ๋ฆ ๋๋ค.
- SEO(๊ฒ์ ์์ง ์ต์ ํ)์ ์ ๋ฆฌ: ๊ฒ์ ์์ง ํฌ๋กค๋ฌ๋ ์ฃผ๋ก HTML ์ฝํ ์ธ ๋ฅผ ๋ถ์ํ๋ฏ๋ก, SSR์์ ๋ฏธ๋ฆฌ ๋ ๋๋ง๋ HTML์ ์ ๊ณตํ๋ฉด ๊ฒ์ ์์ง์ ์ ๋ ธ์ถ๋ฉ๋๋ค. CSR ๋ฐฉ์์ฒ๋ผ JavaScript๋ก ์ฝํ ์ธ ๊ฐ ๋ ๋๋ง๋๋ฉด ๊ฒ์ ์์ง์ด ํฌ๋กค๋งํ๊ธฐ ์ด๋ ค์ด ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
- ์ด๊ธฐ ๋ ๋๋ง ์๋ฃ ํ, ํด๋ผ์ด์ธํธ์์ ์ถ๊ฐ ๊ธฐ๋ฅ: ์ด๊ธฐ ํ์ด์ง๋ ์๋ฒ์์ ๋ ๋๋ง๋์ง๋ง, ์ดํ์ ํด๋ผ์ด์ธํธ ์ธก์์ JavaScript๊ฐ ๋ก๋๋์ด ๋์ ์ธ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋ฉ๋๋ค. ์ด๋ฅผ Hydration์ด๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
SSR์ ๋จ์
- ์๋ฒ ๋ถํ ์ฆ๊ฐ: ์ฌ์ฉ์๊ฐ ํ์ด์ง๋ฅผ ์์ฒญํ ๋๋ง๋ค ์๋ฒ๊ฐ ์ค์๊ฐ์ผ๋ก HTML์ ์์ฑํด์ผ ํ๊ธฐ ๋๋ฌธ์, ์๋ฒ์ ๋ถํ๊ฐ ๋ง์ด ๊ฑธ๋ฆด ์ ์์ต๋๋ค. ํนํ ์์ฒญ์ด ๋ง์์ง๋ฉด ์๋ฒ ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค.
- ์๋ต ์๋: ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ณ HTML์ ์์ฑํ๋ ์๊ฐ์ด ํ์ํ๊ธฐ ๋๋ฌธ์, ๋ณต์กํ ํ์ด์ง์ผ ๊ฒฝ์ฐ ์๋ต ์๊ฐ์ด ๋์ด๋ ์ ์์ต๋๋ค. ํนํ ์๋ฒ๊ฐ ๋๋ฆฌ๋ฉด ์ฌ์ฉ์ ๊ฒฝํ์ด ์ ํ๋ ์ ์์ต๋๋ค.
- ํด๋ผ์ด์ธํธ-์๋ฒ ๊ฐ์ ๋คํธ์ํฌ ์ง์ฐ: ์๋ฒ๊ฐ ์ฌ์ฉ์์ ๋ฉ๋ฆฌ ๋จ์ด์ ธ ์์ ๊ฒฝ์ฐ, ๋คํธ์ํฌ ์ง์ฐ์ผ๋ก ์ธํด SSR์ ์ฅ์ ์ธ ๋น ๋ฅธ ๋ก๋ฉ ์๋๊ฐ ์ ํ๋ ์ ์์ต๋๋ค.
SSR ์ฌ์ฉ ์์
- ๋ธ๋ก๊ทธ๋ ๋ด์ค ์ฌ์ดํธ: ์ฝํ ์ธ ๊ฐ ์์ฃผ ๋ณ๊ฒฝ๋์ง ์์ผ๋ฉด์๋ SEO๊ฐ ์ค์ํ ๊ฒฝ์ฐ์ ์ ํฉํฉ๋๋ค.
- ์ ์ ์๊ฑฐ๋ ์ฌ์ดํธ: SEO๊ฐ ์ค์ํ๊ณ , ์ ํ ๋ชฉ๋ก์ด๋ ์์ธ ํ์ด์ง์์ ๋น ๋ฅธ ์ด๊ธฐ ๋ ๋๋ง์ด ํ์ํ ๊ฒฝ์ฐ์ ์ ๋ฆฌํฉ๋๋ค.
4. ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋ ๋๋ง
ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋ ๋๋ง (CSR, Client-Side Rendering): ๋ชจ๋ JavaScript๊ฐ ํด๋ผ์ด์ธํธ์์ ์คํ๋๋ฉฐ, ์ฒ์์๋ ๋น HTML ํ์ผ์ ์ ๊ณตํ๊ณ , JavaScript๊ฐ ๋ธ๋ผ์ฐ์ ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ๋ ๋๋งํฉ๋๋ค.
- ์ฅ์ : ์ฌ์ฉ์ ์ธํฐ๋์ ์ด ๋ง์ ๋์ ์ธ ์น ์ฑ์ ์ ํฉ, ์๋ฒ ๋ถ๋ด์ด ์ ์
- ๋จ์ : ์ด๊ธฐ ๋ก๋ฉ ์๋๊ฐ ๋๋ฆด ์ ์์, SEO์ ๋ถ๋ฆฌํ ์ ์์
CSR ์ด ์ ํฉํ ๊ฒฝ์ฐ
- ๋งค์ฐ ๋์ ์ธ ์ฌ์ฉ์ ์ธํฐ๋์
์ด ๋ง์ ์ ํ๋ฆฌ์ผ์ด์
: ์๋ฅผ ๋ค์ด ์ฌ์ฉ์์ ์์ฒญ์ ๋ฐ๋ผ ์ค์๊ฐ์ผ๋ก UI๊ฐ ๋ณํ๋ ์น ์ฑ.
- ๋์ ๋ณด๋: Google Analytics
- SNS๋ ๋ฉ์์ง ์ฑ: Facebook, Twitter
- ์ฃผ๋ฌธ, ๋ฐฐ์ก ์ํ, ์ฅ๋ฐ๊ตฌ๋
- ์จ๋ผ์ธ ํ์ ํ์ ๋๊ตฌ: Zoom, Google Meet
- ์ค์๊ฐ ํ์ ๋๊ตฌ: Figma
- SEO๊ฐ ๋ ์ค์ํ ๊ฒฝ์ฐ: SEO๋ณด๋ค ์ฌ์ฉ์ ๊ฒฝํ์ด ์ค์ํ ์ ํ๋ฆฌ์ผ์ด์
์ ์ ํฉ.
- ๋น๋์ค ์คํธ๋ฆฌ๋ฐ ์๋น์ค: Netflix, YouTube
- ์จ๋ผ์ธ ๊ฒ์ ํ๋ซํผ: Steam, Epic Games Store
- ์ฑ๊ธ ํ์ด์ง ์ ํ๋ฆฌ์ผ์ด์
(SPA): CSR์ ์ฌ์ฉ์์ ๋ค๋น๊ฒ์ด์
์ด ๋น๋ฒํ SPA์์ ์ ๋ฆฌํจ. ํ ๋ฒ ๋ก๋๋ ํ์๋ ๋น ๋ฅด๊ฒ ํ์ด์ง๋ฅผ ์ ํํ ์ ์์.
- Gmail, Trello
์์ฝ
- ํ๋ฆฌ๋ ๋๋ง/์ ์ ์์ฑ: ๋น๋ ์์ ์ ๋ฏธ๋ฆฌ HTML ์์ฑ, ๋น ๋ฅธ ๋ก๋ฉ ์๋
- ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋ ๋๋ง: ๋ธ๋ผ์ฐ์ ์์ JavaScript๋ก ๋ ๋๋ง, ๋์ ์ฝํ ์ธ ์ ์ ํฉ
- ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง: ์๋ฒ์์ ์์ฒญ ์๋ง๋ค HTML ์์ฑ, ๋์ ์ฝํ ์ธ ์ SEO์ ์ ๋ฆฌ
๋ ๋๋ง ๋ฐฉ์ | ์ ํฉํ ๊ฒฝ์ฐ | ์ฌ์ฉ ์์ |
ํ๋ฆฌ๋ ๋๋ง | ์์ฃผ ๋ณ๊ฒฝ๋์ง ์๊ฑฐ๋ SEO๊ฐ ์ค์ํ ํ์ด์ง | ๋ธ๋ก๊ทธ, ํฌํธํด๋ฆฌ์ค, ๋๋ฉ ํ์ด์ง |
์ ์ ์์ฑ | ๊ณ ์ ์ ์ธ ์ฝํ ์ธ , ๋น ๋ฅธ ๋ฐฐํฌ๊ฐ ํ์ํ๊ณ ์ ์ง ๋น์ฉ์ด ๋ฎ์ ์ฌ์ดํธ | ๋ฌธ์ํ ์ฌ์ดํธ, ์ ํ ์๊ฐ ์น์ฌ์ดํธ, ๋ง์ผํ ํ์ด์ง |
CSR (Client-Side Rendering) | ์ค์๊ฐ ๋ฐ์ดํฐ ๊ฐฑ์ , ๋์ ์ธ ์ธํฐ๋์ , SEO๊ฐ ๋ ์ค์ํ ํ์ด์ง | ๋์๋ณด๋, SNS, ์ ์ ์๊ฑฐ๋ ์ฌ์ดํธ์ ์ฌ์ฉ์ ๋์๋ณด๋, ํ๋ก์ ํธ ๊ด๋ฆฌ ๋๊ตฌ |
SSR (Server-Side Rendering) | SEO๊ฐ ์ค์ํ๋ฉฐ, ํ์ด์ง๊ฐ ์์ฃผ ๋ณ๊ฒฝ๋๊ฑฐ๋ ๋์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ ๋๋งํด์ผ ํ๋ ๊ฒฝ์ฐ | ์ ์ ์๊ฑฐ๋ ์ ํ ํ์ด์ง, ๋ด์ค ์น์ฌ์ดํธ, ๋์ ์ผ๋ก ์ฌ์ฉ์์๊ฒ ๋ง์ถคํ๋ ํ์ด์ง |
๐ก ๊ฐ ๋ฐฉ์์ ํ๋ก์ ํธ์ ์ฑ๊ฒฉ์ ๋ฐ๋ผ ์ ํํด์ผ ํฉ๋๋ค. ํ์ด์ง๊ฐ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ฐ๋์ง ์๋๋ค๋ฉด ์ ์ ์์ฑ์ด ์ข๊ณ , ๋งค์ฐ ๋์ ์ธ ํ์ด์ง๋ผ๋ฉด CSR์ด๋ SSR์ด ๋ ์ ํฉํฉ๋๋ค.

'๐ก ์์๋๋ฉด ์ข์ ๊ฒ๋ค > ๊ฐ๋ ์ ๋ฆฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋น๋๊ธฐ ์์ ๋๊ตฌ] - Promise, fetch, async/await, axios์ ๋ํด์ ์์๋ณด์ (0) | 2024.08.19 |
---|---|
[Javascript] - 8๊ฐ์ง ๊ฐ๋ ์ ๋ฆฌ (0) | 2024.08.19 |