๋ค์ด๊ฐ๋ฉฐ
์ํ ๊ด๋ฆฌ์ ๋ํด์ ์์๋ณด๊ธฐ๋ฅผ ๊ฒฐ์ฌ!.. ์ด๋์๋ถํฐ ์ด๋ฏธ ๋จผ์ ์์ฑ๋ ๋ง์ ๊ธ๋ค์ ๋๋ฌ๋ณด๋ค ๋ณด๋ ์.. ๐คจ
๋จผ์ ์๊ณ ์์ด์ผ ํ๋ ์ด๋ก ์ด..... ์ด ๋ถ๋ถ์ ๋ํ ์ง์์ด ์์ฃผ ์์ ์ํ์ธ ๊ฑธ ๊นจ๋ฌ์๋ค.
์ง๊ธ์ ๋.. ์ด๋ ดํ์ด ๋ค์ด๋ณธ CSR๊ณผ SSR์ ์ด๋ฆ๋ง ์๊ณ ์์ ๋ฟ.. ๐
๋ชจ๋ฅด๋ฉด ์ฐพ์๋ณด๋ฉด ๋์ง!! ์ข์ ๊ทธ๋ผ ์ด๋๋ถํฐ ์์๋ณผ๊น~ ํ๊ณ ๊ฑฐ์ฌ๋ฌ ์ฌ๋ผ๊ฐ๋ค ๋ณด๋
๋จผ์ ์ด์ฌํ ์ฐพ๊ณ ์ฝ๊ณ ๋ณด๊ฒ ๋ ์ง์ ์ด SPA๋ถํฐ CSR, SSR์ด๋ผ์ ์ ๋ฆฌํด ๋ณด์๋ค.
SPA๋ MPA์ ๋น๊ต๋๋ ๋ฐฉ์์ด๋ผ ํจ๊ป ์์ฑ!
๐ฅ MPA vs SPA
MPA (Multi Page Application)
์ฌ๋ฌ ํ์ด์ง๋ก ๊ตฌ์ฑ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ . ์ ํต์ ์ธ ์น ํ์ด์ง ๊ตฌ์ฑ ๋ฐฉ์์ด๋ค.
MPA์ ๋ ๋๋ง ๋ฐฉ์
- ์ธํฐ๋์ ์ด ๋ฐ์ํ๋ค. (ํด๋ฆญ ๊ฐ์)
- ์๋ฒ๋ก๋ถํฐ ์๋ก์ด html์ ๋ฐ์์์ ํด๋น ๋งํฌ๋ก ์ด๋ํ๋ค.
- ํ์ด์ง ์ ์ฒด๋ฅผ ์๋ก ๋ ๋๋ง ํ๋ค.
SPA(Single Page Application)
๋จ์ผ ํ์ด์ง๋ก ๋์ด์๋ ์น ์ ํ๋ฆฌ์ผ์ด์
.
ํ์ด์ง๋ฅผ ๋ ๋๋ง ํ๊ธฐ ์ํ ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ ์ต์ด ์ ๊ทผ ์ ํ ๋ฒ๋ง! ๋ค์ด๋ก๋ํ๋ค.
์ดํ์๋ ํน์ ๋ถ๋ถ๋ง ๋น๋๊ธฐ ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ธ๋ฉ ํด์ ์๋ก ๊ณ ์น๋ ๋ฐฉ์.
ํ์ฌ ์น ๊ฐ๋ฐ์ ํธ๋ ๋! ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด SPA์ ํ์์ ๊ฐ๊ณ ์๋ค.
SPA์ SSR์ ๋น๊ตํ์ ๋, SPA์ ์ด๋ฐ ์ฅ์ ์ด ์๋ค.
- ๋ฐฐํฌ๊ฐ ๊ฐ๋จํ๋ค
- ๋ค์ดํฐ๋ธ ์ฑ๊ณผ ์ ์ฌํ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ ์ ์๋ค.
๐ฅ CSR vs SSR
CSR (Client-Side Rendering)
SPA์ ๋ ๋๋ง ๋ฐฉ์์ด๋ฉฐ, ์ฌ์ฉ์์ ์์ฒญ์ ๋ฐ๋ผ ํ์ํ ๋ถ๋ถ๋ง ์๋ต์ ๋ฐ์์ ๋ ๋๋ง ํ๋ ๋ฐฉ์์ด๋ค.
๊ฐ๋จํ๊ฒ ๋งํ์๋ฉด ๋ ๋๋ง์ด ํด๋ผ์ด์ธํธ์ชฝ์์ ์ด๋ฃจ์ด์ง๋ ๋ฐฉ์์ด๋ค.
๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฒ๋ก๋ถํฐ ๋ฐ์์จ ์๋ต์ ๋ ๋๋ง ํ๊ธฐ ๋๋ฌธ์ ๋ ๋๋ง์ด ํ์ํ ์ํ๋ฅผ ์ ๊ตํ๊ฒ ๊ด๋ฆฌํด์ผ ํ๋ค.
๋ ๋๋ง ์์
- ์ ์ ๊ฐ ์ฌ์ดํธ์ ์ ์, ๋ธ๋ผ์ฐ์ ๊ฐ ํ๋ฉด ๋ก๋๋ฅผ ์ํ ์์ฒญ์ ์๋ฒ์ ๋ณด๋
- ์๋ฒ์์ index ํ์ผ(๊ฑฐ์ ๋น ์ํ)์ ๋ฐ์์ด → ์ ์ ๋ ๋ก๋ฉ ์ค.. ํฐ ํ๋ฉด..
- ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฒ๋ก๋ถํฐ js๋ฅผ ๋ฐ์์ด → ์ฌ์ ํ ๋ก๋ฉ ์ค
- ๋ธ๋ผ์ฐ์ ๊ฐ js๋ฅผ ์คํํ๋ฉฐ ํ๋ ์์ํฌ๋ฅผ ์คํํ๋ค.
- ์ด๋ ๋์ ์ผ๋ก HTML์ ์์ฑํ๊ณ , ํ์ํ ๋ฐ์ดํฐ๋ค์ ๋ชจ์ผ๊ณ .. ์ด๋ฐ ๊ณผ์ ๋ค์ ๊ฑฐ์น๋ค.
- ์น์ฌ์ดํธ๊ฐ ๋ณด์ด๊ณ (TTV), ํด๋ฆญ ๋ฑ์ ์ธํฐ๋์ ์ด ๊ฐ๋ฅํด์ง๋ค (TTI)
์ด๊ธฐ ๋ก๋ฉ ์ดํ
- ๋ธ๋ผ์ฐ์ ๊ฐ ํ์ํ ๋ถ๋ถ์ ์๋ฒ์๊ฒ ์์ฒญ
- ์๋ฒ๊ฐ ํ์ํ ๋ถ๋ถ๊ณผ ๊ด๋ จ๋ ๋ฆฌ์์ค๋ง ์๋ตํจ
๐ค TTI๋ TTV๋ ๋ญ๊ฐ์?
- TTI = Time To Interact
- ์ฌ์ฉ์๊ฐ ๋ธ๋ผ์ฐ์ ์์ ์ธํฐ๋์ (ํด๋ฆญ ๋ฑ์ ํ๋)์ ํ ์ ์๋ ์์
- TTV = Time To View
- ์ฌ์ฉ์๊ฐ ๋ธ๋ผ์ฐ์ ์์ ๋ด์ฉ์ ๋ณผ ์ ์๋ ์์ (ํฐ ํ๋ฉด ์๋ ๋)
CSR์ ํน์ง
- SSR์ ๋นํด์ ์ด๊ธฐ ๋ก๋ฉ์๊ฐ์ด ์ข ๋ ์ค๋ ๊ฑธ๋ฆฐ๋ค
- ๋ชจ๋ JS ํ์ผ์ ๋ฐ์์ค๊ธฐ ๋๋ฌธ์ด๋ค.
- ์๋๊ฐ ๋น ๋ฅด๊ณ ์๋ฒ ๋ถํ๊ฐ ์ ๋ค.
- ์ด๊ธฐ ๋ก๋ฉ ์ดํ์๋ ์๋ฒ๊ฐ ํ์ํ ๋ฆฌ์์ค๋ง ์๋ตํ๊ธฐ ๋๋ฌธ์ ์๋ก๊ณ ์นจ ์์ด ์์ ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ก ๋ณผ ์ ์๋ค.
- UX ์ธก๋ฉด์์ SSR๋ณด๋ค ์ฌ์ฉ์ ์นํ์ ์ด๋ค.
- TV์ TTI๊ฐ ๊ฐ์ ์์ ์ด๋ค.
- SEO์ ๋ถ๋ฆฌํ๋ค.
CSR์ด SEO๊ฐ ๋ถ๋ฆฌํ ์ด์ ๋ ์ฌ์ฉ์์์ ์ธํฐ๋์
ํ์ ํ์ด์ง๋ฅผ ๋ก๋ํ๊ธฐ ๋๋ฌธ์,
์น ํฌ๋กค๋ฌ๊ฐ ํ์ด์ง๋ฅผ ์์ธํํ๋ ค ํ ๋ ๋น ํ์ด์ง์ฒ๋ผ ๋ณด์ผ ์ ์๋ค.
๐ค SEO๋ ๋ ๋ญ๊ฐ์?
๊ฒ์ ์์ง ์ต์ ํ. ์น์ฌ์ดํธ๊ฐ ๊ฒ์ ๊ฒฐ๊ณผ์ ๋ ์ ๋ ธ์ถ๋๋๋ก ์ต์ ํํ๋ ๊ณผ์ ์ด๋ค.
๊ฒ์์์ง์ ํ์ด์ง→ํ์ด์ง๋ก ๋งํฌ๋ฅผ ๋ฐ๋ผ๊ฐ๋ฉฐ ์ฐพ์ ์ฝํ ์ธ ์ ์์ธ์ ์์ฑํ๋ค.
SSR (Server-Side Rendering)
MPA์ ๋ ๋๋ง ๋ฐฉ์์ด๋ฉฐ ์๋ฒ๋ก๋ถํฐ ์์ ํ๊ฒ ๋ง๋ค์ด์ง html ํ์ผ์ ๋ฐ์์์ ํ์ด์ง ์ ์ฒด๋ฅผ ๋ ๋๋ง ํ๋ ๋ฐฉ์.
์ฝ๊ฒ ๋งํด์ ๋ ๋๋ง์ด ์๋ฒ ์ชฝ์์ ์ด๋ฃจ์ด์ง๋ ๊ฒ์ ๋งํ๋ค.
์ด๋ค ๋ถ๋ถ๋ง ์์ ํ๊ณ ์ถ์ ๋, ์ผ๋ถ๋ถ๋ง ์์ ํ ์ ์๋ ๊ฒ ์๋๋ผ ์์ ํ ๋ถ๋ถ์ ํฌํจํด์
์ฒ์๋ถํฐ ๋ชจ๋ ๊ฒ์ ์๋ฒ๋ก๋ถํฐ ๋ค์ ๋ฐ์์จ๋ค.
๋ธ๋ผ์ฐ์ ์ ์์ฒญ๊ณผ ์๋ฒ์ ์๋ต ์ ์๋ก๊ณ ์นจ ๋์ด ํ๋ฉด์ด ๊น๋นก์ธ ํ์ ํ์๋๋ค.
์๋ฒ๋ก๋ถํฐ ์์ ํ ๋ง๋ค์ด์ง ํ์ผ์ ๋ฐ์์ค๋๊น ๋ธ๋ผ์ฐ์ ์์๋ ๋ฐ์ดํฐ๋ฅผ ๊ตณ์ด ์ ๊ตํ๊ฒ ๊ด๋ฆฌํ์ง ์๋๋ค.
๋ ๋๋ง ์์
- ์ ์ ๊ฐ ์ฌ์ดํธ์ ์ ์
- ๋ธ๋ผ์ฐ์ ๊ฐ ์ด๊ธฐํ๋ฉด ๋ก๋๋ฅผ ์ํ ์์ฒญ์ ์๋ฒ์ ๋ณด๋
- ์๋ฒ๋ ๋ฐ๋ก ๋ ๋๋ง์ด ๊ฐ๋ฅํ HTML ํ์ผ์ ๋ง๋ค์ด ๋ณด๋ (์ด๋ฏธ ์์ฑ๋ HTML)
- ๋ธ๋ผ์ฐ์ ๋ ์๋ฒ๋ก๋ถํฐ ๋ฐ์ HTML ํ์ผ์ ๋ ๋๋ง (TTV ํ์ง๋ง ์กฐ์ ๋ถ๊ฐ๋ฅ..)
- ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฒ์์ JS๋ฅผ ๋ฐ์์ด (์ฌ์ ํ ์กฐ์ ๋ถ๊ฐ๋ฅ.. ํ์ง๋ง ์ฌ์ฉ์์ ์กฐ์์ ๊ธฐ์ตํ๊ณ ์์)
- ์๋ฒ์์ JS ์คํ
- ์ธํฐ๋์ ๊ณผ ์ฌ์ฉ์ด ๊ฐ๋ฅํด์ง (TTI)
์ด๊ธฐ๋ก๋ฉ ์ดํ
- ์ ๊ณผ์ ์์ 1์ ์ ์ธํ ๋๋จธ์ง์ ๋ฐ๋ณต .. ๋ชจ๋ ๊ฒ์ ๋ค์ ์๋ฒ๋ก๋ถํฐ ๋ฐ์์ค๊ธฐ ๋๋ฌธ์ด๋ค.
SSR์ ํน์ง
- SEO์ ์ ๋ฆฌํ๋ค.
- CSR๊ณผ ๋ฐ๋๋ก, ์๋ฒ๋ก๋ถํฐ ์จ HTML์ ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ๋ด๊ฒจ์ ๋ธ๋ผ์ฐ์ ์ ์ ๋ฌ๋๊ธฐ ๋๋ฌธ์ด๋ค.
- ์ด๊ธฐ ๋ก๋ฉ ์๋๊ฐ ๋น ๋ฅด๋ค.
- ์๋ฒ๋ก๋ถํฐ ํ๋ฉด์ ๋ ๋๋ง ํ๊ธฐ ์ํ ํ์์ ์ธ ์์๋ฅผ ๋จผ์ ๊ฐ์ ธ์ค๊ธฐ ๋๋ฌธ์ด๋ค.
- ์ด๊ฒ์ ๋จ์ ์ด๊ธฐ๋ ํ๋ฐ, ์ฌ์ฉ์๋ง๋ค ์ฐจ์ด๊ฐ ์์ง๋ง TTV์ TTI ์ฌ์ด์ ๊ฐ๊ฒฉ์ด ๋ช ๋ฐฑํ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ด๋ค.
- UX ์ธก๋ฉด์์ ์ฌ์ฉ์ ์นํ์ ์ธ ๋ฉด์ ๋จ์ด์ง๋ค.
- TTV์ TTI ์ฌ์ด์ ๊ฐ๊ฒฉ์ด ์กด์ฌํ๊ธฐ ๋๋ฌธ. (์นํ์ด์ง๋ ์ด๋ฏธ ๋ก๋ฉ๋์์ง๋ง ํด๋ฆญํด๋ ๋ฐ์์ด ์๋ ๊ทธ๋ฐ…)
- ํ์ด์ง๋ฅผ ์์ฒญํ ๋๋ง๋ค ์๋ก๊ณ ์นจ์ด ๋๋ค๋ ์ . (ํฐ ํ๋ฉด ๊น๋นก)
- ์์ ์ด์ด์, ์๋ฒ์ ๋ถํ๊ฐ ์ฆ๊ฐํ๋ค
- ์๋ก๊ณ ์นจ ๋๋ค๋ ๊ฒ์ ์๋ฒ์์ ๋งค๋ฒ ํ์ด์ง๋ฅผ ๊ตฌ์ฑํ๋ ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ ๋ค์ ๋ ๋๋ง ํ๊ธฐ ๋๋ฌธ.
์์ฝํด ๋ณด๋ฉด ์ด๋ ๊ฒ ์ ๋ฆฌํด ๋ณผ ์ ์๊ฒ ๋ค.
CSR | SSR | |
๋ก๋ฉ ์๋ | ์ด๊ธฐ ๋ก๋ฉ์ ๋๋ฆฌ์ง๋ง ์ดํ์๋ ๋น ๋ฅธ ํธ (ํ ํ์ด์ง์์ ํ์ํ ๋ถ๋ถ๋ง ๋ฆฌ์์ค๋ฅผ ๋ฐ์์ค๊ธฐ ๋๋ฌธ) |
์ด๊ธฐ ๋ก๋ฉ์ ๋น ๋ฅด๋ค ์ดํ์๋ ๋๋ฆฐ ํธ (๋งค ํ์ด์ง๋ง๋ค ์๋ก ๋ฆฌ์์ค๋ฅผ ๋ฐ์์ค๊ธฐ ๋๋ฌธ) |
์๋ฒ์ ๋ถํ | ๋ฎ๋ค | ๋๋ค |
UX | ์ฌ์ฉ์ ์นํ์ | ์ฌ์ฉ์ ์นํ์ ์ด์ง ๋ชปํจ |
SEO | ๋ถ๋ฆฌํ๋ค | ์ ๋ฆฌํ๋ค |
์ ๋ฆฌํ ๊ฑธ ๋ณด๋ค ๋ณด๋ ์ ์ง CSR์ด ๋ ๋์ ๊ฒ ๊ฐ์ ๋๋์ด ๋ค๊ธฐ๋ ํ์ง๋ง, ์ด๋ ์ชฝ์ด ๋ ์ข๋ค๊ณ ํ ์๋ ์๋ค.
์๋น์ค๋ ํ๋ก์ ํธ์ ๋ฐ๋ผ์ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋ผ ์ธ์ ๋ญ๊ฐ ๋ ์ ๋ฆฌํ ๊น??
CSR | SSR |
โจ SEO๊ฐ ์ค์ํ์ง ์์ ๋ โจ ์ฌ์ฉ์์ ์ํธ์์ฉ์ด ์ค์ํ ๋ โจ ์๋ฒ์ ์ฑ๋ฅ์ด ์ข์ง ์์ ๋ โจ ๋ฐ์ดํฐ ๋ณดํธ๊ฐ ๋ ์ค์ํ ๋ |
โจ ์นํ์ด์ง์ ์ต์ด ๋ก๋ฉ์ด ๋นจ๋ผ์ผํ ๋ โจ ๊ฒ์ ๋ ธ์ถ์ด ์ค์ํด์ SEO๊ฐ ํ์ํ ๋ โจ ๋ฉ์ธ ์คํฌ๋ฆฝํธ๊ฐ ํฐ ๋น์ค์ ์ฐจ์งํ ๋ โจ ์ฌ์ฉ์์์ ์ํธ์์ฉ์ด ๋ง์ง ์์ ๋ |
์ง๊ธ๊น์ง MPA์ SPA, CSR๊ณผ SSR์ ๋ํด์ ์์๋ณด์๋ค.
๋จผ์ ์ผ๋ชฉ์์ฐํ๊ฒ ์์ฑ๋ ์ฌ๋ฌ ๊ธ๋ค์ ์ฝ๊ณ ์ ๋ฆฌํด ๋ณด๋ฉฐ ์น์ ๋ํด์ ์กฐ๊ธ ๋ ์ดํดํ ์ ์๋ ์๊ฐ์ด์๋ค.
๊ฒฝ์ฐ์ ๋ฐ๋ผ์ ๋ ์ ๋ฆฌํ ์ชฝ์ผ๋ก ํ์ฉํ๋ ๊ฒ์ด ์ค์ํ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ ๋ค. ๐
์ถ์ฒ
https://thetombomb.com/posts/rendering-options-on-the-web
SPA, SSG, SSR and JAMStack: a front-end acronyms guide
https://miracleground.tistory.com/165
https://velog.io/@yu2jeong/TTV-Time-To-View-TTI-Time-To-Interact
๐คธโ๏ธ๐คธโ๏ธ๐คธโ๏ธ๐คธโ๏ธ๐คธโ๏ธ๐คธโ๏ธ
๋ฐฉ๋ฌธํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ๐
ํฌ์คํ ๋ค์ ๊ณต๋ถ์ค์ธ ๋ด์ฉ์ ๊ธ๋ก ์์ฑํ ๊ฒ์ด๋ผ ๋ถ์กฑํ ์ ์ด ๋ง์ผ๋ ์ฐธ๊ณ ๋ถํ๋๋ฆฝ๋๋ค.
๋ถ์กฑํ ๋ถ๋ถ์ ๋ํ ์ฝ๋ฉํธ๋ ์ธ์ ๋ ํ์์ ๋๋ค.
์ข์ ํ๋ฃจ ๋์ธ์, ๊ฐ์ฌํฉ๋๋ค! ๐
'๐ Studying > Web' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Query parameter, Query String vs Path Variable (2) | 2022.12.14 |
---|---|
CORS๊ฐ ๋ญ๋ฐ.. ์๋ฌ ๋์ฒ๋ ์ด๋ป๊ฒ ํด์ผ.. ๐ฅน (0) | 2022.10.12 |
์นํฉ ๋น๋๋ถํฐ ๋ฐฐํฌ๊น์ง ํ๋ํ ์ฝ์ง ๊ณผ์ (0) | 2022.09.14 |
๋ธ๋ผ์ฐ์ ์ ๋ ๋๋ง์ ์ด๋ค ๊ณผ์ ์ ๊ฑฐ์น ๊น? (0) | 2022.07.08 |
Comment