SPA vs MPA (CSR, SSR)
๐ SPA ๋ฐฉ์, MPA ๋ฐฉ์
โ SPA ๋ฐฉ์
SPA : Single Page Application
๋จ ํ๋์ ํ์ด์ง๋ก ์ด๋ฃจ์ด์ง ์ดํ๋ฆฌ์ผ์ด์
-์ดํ๋ฆฌ์ผ์ด์ ๋ด์์ ํ์ด์ง ์ด๋ ์ JS๋ฅผ ํตํด์ ํ์ฌ ๋ณด๊ณ ์๋ DOM์ ๋ด์ฉ์ ๋ชจ๋ ์ ๊ฑฐํ๊ณ
์ด๋ํ ํ์ด์ง์ ๋ง๋ ์ปจํ ์ธ ๋ก DOM์ ๊ทธ๋ฆฐ ํ
๋ธ๋ผ์ฐ์ ์์ URL์ ๋ณ๊ฒฝํ์ฌ ํ์ด์ง๋ฅผ ์ด๋ํ ๊ฒ ๊ฐ์ ๋๋์ ์ฃผ๋ ๋ฐฉ์
-์ด๋ค ํ์ด์ง๋ฅผ ์ ์ํ๋๋ผ๋ HTML, CSS, JS๋ฅผ ๋์ผํ ํ์ผ ํ๋๋ง ์ ์ํ ํ์ด์ง์ ๋ง๊ฒ ํ๋ฉด์ ๊ตฌ์ฑํ๋ค.
-์ต๊ทผ JS ํ๋ ์์ํฌ๋ค์ SPA๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ํ๊ณ ์๋ค. (React, Vue, Angular ๋ฑ)
-์ฝ๊ฒ ๋งํ๋ฉด ๊ธฐ๋ณธ ๋ผ๋๋ง ์๊ณ , ๊ฐ ํ์ด์ง์ ๋ง๋ ์ปจํ ์ธ ๋ก DOM์ ๊ทธ๋ฆฐ ํ ์ฌ์ถ๋ ฅํ๋ ๋ฐฉ์์ด๋ค.
-๊ทธ๋์ ํ์ด์ง ์ด๋์ ํด๋ ํ๋ฉด ๊น๋นก์์ด ์๋ค!
<html>
<head>
<title>Title</title>
</head>
<body>
<div id="app"></div>
</body>
</html>
SPA ๋ฐฉ์์ ๊ธฐ๋ณธ ํ์ด์ง์ ์ฝ๋๋ ์ด๋ฐ ๋ฐฉ์์ผ๋ก ๋์ด ์๋ค
โ MPA ๋ฐฉ์
MPA : Multiple Page Application
์ฌ๋ฌ ๊ฐ์ ํ์ด์ง๋ก ์ด๋ฃจ์ด์ง ์ดํ๋ฆฌ์ผ์ด์
-๊ฐ ํ๋ฉด๋ง๋ค HTML, CSS, JS๋ฑ์ ํ์ผ๋ค์ด ์กด์ฌํ๋ค.
-ํ์ด์ง ๋ณ๋ก ํด๋น ํ์ด์ง์ ๋ง๋ HTML, CSS, JS ํ์ผ ๋ฑ์ ์๋ฒ๋ก๋ถํฐ ๋ฐ์์ ํ๋ฉด์ ๊ตฌ์ฑํ๋ค.
-ํ์ด์ง ์ด๋์ ํ๋ฉด ๊น๋นก์์ด ์๋ค!
<html>
<head>
<title>Title</title>
</head>
<body>
<div>์์ฑ๋์ด ์๋ ์ปจํ
์ธ </div>
...
...
...
</body>
</html>
MPA ๋ฐฉ์์ ๊ธฐ๋ณธ ํ์ด์ง์ ์ฝ๋๋ ์ด๋ฏธ ์์ฑ๋์ด ์๋ค
๊ทธ๋ฆฌ๊ณ CSR, SSR ์ด๋ผ๋ ๊ฒ ์๋ค.
๐ CSR ๋ฐฉ์, SSR ๋ฐฉ์
โ CSR ๋ฐฉ์
CSR : Client Side Rendering
-์ฒ์์ ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฒ๋ก๋ถํฐ HTML๊ณผ static ํ์ผ๋ค์ ๋ฐ์์ค๊ณ ,
์ฌ์ฉ์์ ์์ฒญ์ ๋ฐ๋ผ js๋ฅผ ํตํด ํ์ด์ง ์ปจํ ์ธ ์ ๋ง๋ view๋ฅผ ๋์ ์ผ๋ก ๋ ๋๋งํ๋ ๋ฐฉ์.
-์๋ฒ๋ ํ์ผ ์ ๋ฌ์ ์ญํ ๋ง ํ๋ค.
-์๋ฒ๋ก๋ถํฐ ์ฒ์์๋ง ํ์ด์ง๋ฅผ ๋ฐ์์ค๊ณ ์ดํ๋ถํฐ๋
ํด๋ผ์ด์ธํธ ํผ์ ํ๋ฉด์ ๊ทธ๋ฆด ์ ์์ผ๋ฏ๋ก ๋น ๋ฅธ ํ๋ฉด ์ ํ์ด๋ ์ธํฐ๋์ ์ด ๊ฐ๋ฅํ๋ค.
-SEO์ ์ทจ์ฝํ๋ค (ํ์ง๋ง ๊ฐ ํ๋ ์์ํฌ๋ค์ SEO ์ทจ์ฝ์ ๋ณด์ํ๋ ๊ธฐ์ ๋ค์ ์ ๋ณด์ด๊ณ ์๋ค)
-ํ์ด์ง๋ฅผ ์์ฒญํ ๋์๋ง ํด๋น ๋ฐ์ดํฐ์ ์ปจํ ์ธ ๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ๋๋ฌธ์ ํ์ด์ง ์ ํ์ด ๋น ๋ฅด๋ค
โ SSR ๋ฐฉ์
SSR : Server Side Rendering
-์ฌ์ฉ์์ ์์ฒญ์ ๋ฐ๋ผ ์๋ฒ๋ก๋ถํฐ HTML๊ณผ data๊ฐ ํจ๊ป ์๋ ํ ํ๋ฆฟ์ ๋ฐ์์จ๋ค.
-์ด๋ฏธ DOM์ด ๋ค ๊ตฌ์ฑ๋ ํ์ผ์ ๋ธ๋ผ์ฐ์ ๊ฐ ๋ฐ๊ธฐ ๋๋ฌธ์ ์ด๊ธฐ ๊ตฌ๋ ์๋๊ฐ ๋น ๋ฅด๋ค.
-์ฌ์ฉ์๊ฐ ์์ฒญํ ๋๋ง๋ค ๋ธ๋ผ์ฐ์ ์ ์๋ก๊ณ ์นจ์ด ์ผ์ด๋๋ ๋ฐฉ์.
๐ก CSR, SSR ์ ๋ฆฌ
CSR ๋ฐฉ์, SSR ๋ฐฉ์ ๋ ๊ฐ์ง ๋ฐฉ์ ์ค
์ ๋์ ์ผ๋ก ๋น ๋ฅด๊ฑฐ๋ ๋๋ฆฌ๊ฑฐ๋ ์ข๊ณ ๋์จ์ ์๋ค.
์ด์ฉํ๋ ์๋ฒ์ ์ฌ์ฉ์์ ์ด์ฉ ํ๊ฒฝ์ ๋ฐ๋ผ ๋ค๋ฅด๊ธฐ๋ ํ๊ณ
์คํ๋๋ ๊ธฐํ ์์๋ค์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
๊ณ ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํด์ผ ํ๋ ๊ฒฝ์ฐ๋ ๋น์ฉ์ ๋ฏผ๊ฐํ ๊ฒฝ์ฐ CSR๋ฅผ ์ ํํ ์ ์๊ณ ,
์ ์ ์ฝํ ์ธ ์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ๊ฐ ๋ง์ ๊ฒฝ์ฐ์๋ SSR์ ์ ํํ ์๋ ์๊ณ ,
๋ ๊ฐ์ง๋ฅผ ์์ด์ ์๋น์ค๋ฅผ ๊ตฌ์ฑํด์ผ ํ ์๋ ์๋ค.
์ฆ, ํ๋ก์ ํธ๋ ์๋น์ค์ ๋ง๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ฐ๋์งํ๋ค.
โ ๊ฒฐ๋ก
-CSR ๋ฐฉ์, SSR ๋ฐฉ์ : ๋ ๋๋ง์ ์ด๋์ ํ๋์ง์ ์ฐจ์ด
-SPA ๋ฐฉ์, MPA ๋ฐฉ์ : ํ์ด์ง๋ฅผ ํ ๊ฐ ์ฌ์ฉํ๋์ง ์ฌ๋ฌ ๊ฐ๋ฅผ ์ฌ์ฉํ๋์ง์ ์ฐจ์ด
์ฐธ๊ณ