-
Notifications
You must be signed in to change notification settings - Fork 5
CSR_SSR
๊ธฐ๋ณธ์ ์ผ๋ก ์น์ client์ server๋ก ๋์์ด์ ธ ์๋๋ฐ client๋ ์์ฒญ์ ๋ณด๋ด๋ ์ญํ .
์๋ฒ๋ ์์ฒญ์ ๋ณด๊ณ , ์ด ์์ฒญ์ ๋ํด ์ด๋ค ์ ๋ณด๋ฅผ ์๋ตํด์ค์ผ ํ ์ง ํ๋จํ๊ณ , ์๋ง์ html ๋ฌธ์๋ฅผ ๋ด๋ ค์ค๋ค.
๊ทธ๋ผ client๋ ๊ทธ ์๋ต(html ๋ฌธ์)์ ๋ฐํ์ผ๋ก DOM์ ๊ทธ๋ฆฐ๋ค.
์์ฒญ์ ๋ณด๋ด๊ณ -> ์๋ต์ ๋ฐ๊ณ -> ๊ทธ๋ฆฌ๊ณ ์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ ๊ฒ!
(DOM์ ๊ทธ๋ฆฌ๋ฉด์ css์ฒ๋ฆฌ + javascript๋ฅผ ๋ก๋)
๊ทธ๋ฌ๋ค๊ฐ ์น์ ์ฑ๋ฅ์ด ๊ณ์ ์ข์์ง๊ณ ๋ด๋ ค์ค์ผํ๋ ์ ๋ณด์ ์์ด ๋ง์์ง๊ฒ ๋์๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฑ์ฅ ์ดํ๋ก ์ฌ์ฉ์์์ ์ธํฐ๋์
๋ ๋์ด๋๋ ๊ฒ.
(staticํ ์ ๋ณด๋ง์ ๋ณด์ฌ์ฃผ๋ ์น์ ์ด๊ธฐ ์ญํ ์ ๋์ด์ฌ)
๊ทธ๋ฌ๋ฉด ์์ฒญ, ์๋ต ๊ณผ์ ์ด ๊ณ์ ๋ง์์ง ๊ฒ.
๊ทธ๋ฌ๋ค๋ณด๋ ์๋ฒ์
์ฅ์์๋ ์๋ง์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ค๋ณด๋ ์๋ฒ๋ถํ๊ฐ ์ปค์ง๊ฒ ๋๊ณ ,
์ฌ์ฉ์ ์
์ฅ์์๋ ๊ณ์ํด์ ํ์ด์ง ๊น๋นก์์ด ๋ฐ์ํ๊ฒ ๋์๋ค(์๋ฒ์์ html์ ์๋ก ๋ฐ์ ๊ทธ๋ฆฌ๊ธฐ ๋๋ฌธ)
๊ทธ ๋์ฏค์ Ajax๋ผ๋ ๊ธฐ์ ์ด ๋ฑ์ฅํ๊ฒ ๋๋ค.
์ ์ ๊ฐ ์ฌ์ดํธ๋ฅผ ์ญ ๋ณด๊ณ ์๋ค๊ฐ ์ด๋ค ์ธํฐ๋์
์ด ์ผ์ด๋๋ฉด ์ผ๋ถ๋ถ๋ง ์ ๋ณด๋ฅผ ๋ค๋ฅด๊ฒ ํํํด์ฃผ๊ณ ์ถ์ด
html์ ๊ทธ๋๋ก ๋๊ณ ํน์ ๋ถ๋ถ์ ๋ํ ์ ๋ณด๋ง ๋ฐ๊พธ์๋ ์ปจ์
์ด ์๊ฒจ๋ ๊ฒ์ด๋ค!!
๊ฐ๋ฐ์๋ค์ ์ฌ๊ธฐ์ ๋ง์กฑํ์ง์๊ณ SPA๋ผ๋ ๊ฐ๋
์ ๋ ๊ฐ์ ธ์ค๊ฒ ๋์๋ค.
url์ ์์ง์ด๋๋ผ๋ html์ ๋ค์ ๋ด๋ ค์ฃผ๊ณ ์ถ์ง ์์ ๊ฒ!
๊ทธ๋ฆฌ๊ณ ์ตํ ์๊ณ ์๋ ๋ฆฌ์กํธ๋ผ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ SPA๋ฅผ ๋ง๋๋ ๊ฒ์ ์ง์ํ๋ค.
๊ทธ๋ฆฌ๊ณ SPA๋ฅผ ๋ง๋๋ ๊ฒ์ ์ง์ํ๋ ๋ฆฌ์กํธ๋ ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋ ๋๋ง ๋ฐฉ์์ผ๋ก ๋์ํ๋ค.
๋ณดํต ํ๋ฉด์ ๊ทธ๋ฆฌ๋ ๊ฒ์ ์๋ฒ์์ ๋ฐ์ html์ ๋ฐํ์ผ๋ก Client๊ฐ ํ๋ฉด์ ๊ทธ๋ฆฌ๋๋ฐ,
ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋ ๋๋ง์ ์๋ฒ์์ ๋ฐ๋๊ฒ ์๋๋ผ ๊ทธ๋ฅ ํด๋ผ์ด์ธํธ์์ ์์์ ํ๋ฉด์ ๊ทธ๋ฆฐ๋ค!
๋ธ๋ผ์ฐ์ ์ ๊ฐ๋ฐ์ ๋๊ตฌ - ๋คํธ์ํฌ ํญ์ ํ์ธํ๋ฉด url์ ์์ฒญํ๋ฉด ์๋ฒ์์ ์๋ต์ ๋ณด๋ด๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
server๊ฐ ์๋ตํ๋ html์ ํ์ธํ ์ ์๋๋ฐ, ๋ฆฌ์กํธ ํ๋ก์ ํธ์์ ์ด๋ฅผ ํ์ธํ๋ฉด ์๋ฒ์์ ๋ณด๋ด์ฃผ๋ html์ ๋น์ด์๋ค!
๋ฆฌ์กํธ์์๋ ๋น๋๋ฅผ ํ ๋ ๋ด๊ฐ ์ง ๋ชจ๋ ๋ฆฌ์กํธ ์ฝ๋๋ฅผ ํ๋์ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ๋ก ๋ง๋ค์ด์ฃผ๋๋ฐ (babel๋ก transpiling, webpack์ผ๋ก bundling)
์ฌ์ฉ์๊ฐ ์ฒ์ ์ฌ์ดํธ์ ๋ค์ด์์๋ server๋ ๋น์ด์๋ html์ ์๋ตํด๋ฒ๋ฆฌ๊ณ ํด๋ผ์ด์ธํธ์์ bundle.js๋ฅผ ์ฝ๋๋ค.
์ด ๋ฒ๋ค๋ง๋ ํ์ผ์ ์ฝ๊ณ , DOM ํ๋ฉด์ ๊ทธ๋ ค์ฃผ๊ฒ ๋๋ ๊ฒ!
๋ฆฌ์กํธ ํ๋ก์ ํธ์์ ๋ผ์ฐํ
์ฒ๋ฆฌ๋ nav ํญ๋ชฉ์ ํด๋ฆญํ ๋๋ง๋ค url์ด ๋ณ๊ฒฝ๋๋ ๊ฒ์ ๋ณผ ์ ์๋๋ฐ
server๋ ์๋ก์ด html์ ๋ฐํํ์ง ์๋๋ค. ๋์ client์์ ๋ณ๊ฒฝ๋ url์ ๋ง๋ ์ฝ๋๋ฅผ bundle.js์์ ์ฐพ์ ๊ทธ๋ฆฐ๋ค.
- ์ฅ์
-์ฑ์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ค. url์ด ๋ฐ๋์ด๋ html์ ๋ค์ ๋ด๋ ค๋ฐ์ง ์๊ณ ํด๋ผ์ด์ธํธ์์ ์์์ ๊ทธ๋ฆฌ๊ธฐ ๋๋ฌธ.
- ๋จ์
-์ฒซ ํ๋ฉด์ ๋ก๋์๊ฐ์ด ๊ธธ๋ค.
: ์๋น์ค์ ์ฌ์ด์ฆ๊ฐ ์ปค์ ธ์ ์ฝ๋๊ฐ ๋ง์ด์๋ฉด ๋ฒ๋ค๋ง๋ ํ๋์ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ํฌ๊ธฐ๊ฐ ์ปค์ง๋ค.
ํ์ผ์ ํฌ๊ธฐ๊ฐ ์ปค์ง์๋ก ๋ก๋ํ๋ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฐ๋ค. ์ฆ, ์ ์ ๊ฐ ์ฒซ ํ๋ฉด์ ๋ณด๋ ์์ ์ด ๋๋ฌด ๋ฆ์ด์ง๋ค!
-SEO(๊ฒ์ ์์ง ์ต์ ํ) ๋์์ด ํ๋ค๋ค.
: ๊ตฌ๊ธ ๊ฒ์๋ด๋ค์ html์ ๊ธฐ๋ฐ์ผ๋ก ์์๋ฅผ ์ฐพ๊ธฐ ๋๋ฌธ์ ๋น html์ ๋ด๋ ค์ฃผ๋ CSR์ ์ฌ์ฉํ๋ฉด ๋ถ๋ฆฌํด์ง๋ค.
-> ์ด๋ฐ ๋จ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด CSR๊ณผ SSR์ ํฉ์น๋๊ฒ ์ด๋จ๊น ํ๋ ์์ด๋์ด๊ฐ ๋์๊ณ , ์ด๋ฅผ ๋์์ฃผ๋ ๊ฒ NextJS๋ผ๋ ๊ธฐ์ ์ด๋ค:)
์ฐธ๊ณ ๋งํฌ
https://www.youtube.com/watch?v=C6uELkDh-60
https://d2.naver.com/helloworld/7804182
โ 2020. Project01-C-User-Event-Collector [J028_๊น๋๊ท , J089_๋ฐ์งํ, J139_์ด์๊ฒฝ, S059_์ต๊ดํ, S060_์ต๋๊ท] all rights reserved.