HTTP์ ๋คํธ์ํฌ, SSR๊ณผ CSR
โ๏ธ Today I Learned
1. HTTP/๋คํธ์ํฌ
1-1. ํด๋ผ์ด์ธํธ-์๋ฒ ์ํคํ ์ฒ
-
ํด๋ผ์ด์ธํธ-์๋ฒ ์ํคํ ์ฒ๋ ๋ฆฌ์์ค๊ฐ ์กด์ฌํ๋ ๊ณณ๊ณผ, ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋ ์ฑ์ ๋ถ๋ฆฌ์ํจ ๋คํธ์ํฌ ๋ชจ๋ธ์ด๋ค.
๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋ ์ฑ์ด ๋ฐ๋ก โํด๋ผ์ด์ธํธโ, ๋ฆฌ์์ค๊ฐ ์ ๊ณต(serve)ํ๋ ๊ณณ์ โ์๋ฒโ ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ก๋ง ์ด๋ฃจ์ด์ง ๋ชจ๋ธ์ 2-Tier ์ํคํ ์ฒ๋ผ๊ณ ๋ถ๋ฅด๊ธฐ๋ ํ๋ค.
-
์ผ๋ฐ์ ์ผ๋ก ์๋ฒ๋ ๋ฆฌ์์ค๋ฅผ ์ ๋ฌํด์ฃผ๋ ์ญํ ๋ง ๋ด๋นํ๋ค.
๋ฆฌ์์ค๋ฅผ ์ ์ฅํ๋ ๊ณต๊ฐ์ ๋ณ๋๋ก ๋ง๋ จํด ๋๋๋ฐ, ์ด ๊ณต๊ฐ์ โ๋ฐ์ดํฐ๋ฒ ์ด์คโ ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
์ด์ฒ๋ผ ๊ธฐ์กด 2ํฐ์ด ์ํคํ ์ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ถ๊ฐ๋ ํํ๋ฅผ 3ํฐ์ด ์ํคํ ์ฒ๋ผ๊ณ ์ผ์ปซ๋๋ค.
1-2. HTTP ํ๋กํ ์ฝ์ด๋?
-
HTTP(Hypertext Transfer Protocol)๋ ์น์ ๊ฐ๋ฐํ๋ ์ฌ๋์ด๋ผ๋ฉด ๋๊ตฌ๋ ๋ค ์์์ผ ํ๋ ํต์ ํ๋กํ ์ฝ์ด๋ค.
ํ๋กํ ์ฝ์ด๋ ์ํธ ๊ฐ์ ์ ์ํ ๊ท์น์ ์๋ฏธํ๋ฉฐ ํน์ ๊ธฐ๊ธฐ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํด ์ ์๋์ด ์๋ค.
์น์์๋ ๋ธ๋ผ์ฐ์ ์ ์๋ฒ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํ ๋ฐฉ์์ผ๋ก HTTP ํ๋กํ ์ฝ์ ์ฌ์ฉํ๊ณ ์๋ค.
-
HTTP ํ๋กํ ์ฝ์ ํน์ง์ ์ํ๊ฐ ์๋(stateless) ํ๋กํ ์ฝ์ด๋ค.
์ฌ๊ธฐ์ โ์ํ๊ฐ ์๋คโ๋ผ๋ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํ ๊ฐ๊ฐ์ ๋ฐ์ดํฐ ์์ฒญ์ด ์๋ก ๋ ๋ฆฝ์ ์ผ๋ก ๊ด๋ฆฌ๊ฐ ๋๋ค๋ ๋ง์ด๋ค.
์ฆ, ์ด์ ๋ฐ์ดํฐ ์์ฒญ๊ณผ ๋ค์ ๋ฐ์ดํฐ ์์ฒญ์ด ์๋ก ๊ด๋ จ์ด ์์ด ๋ ๋ฆฝ์ ์ด๋ค.
์ด๋ฌํ ํน์ง ๋ํ์ ์๋ฒ๋ ์ธ์ ๊ณผ ๊ฐ์ ๋ณ๋์ ์ถ๊ฐ ์ ๋ณด๋ฅผ ๊ด๋ฆฌํ์ง ์์๋ ๋๊ณ , ๋ค์์ ์์ฒญ ์ฒ๋ฆฌ ๋ฐ ์๋ฒ์ ๋ถํ๋ฅผ ์ค์ผ ์ ์๋ ์ฑ๋ฅ ์์ ์ด์ ์ด ์๊ธด๋ค.
1-3. URL์ URI
-
URL์ Uniform Resource Locator์ ์ค์๋ง๋ก, ๋คํธ์ํฌ ์์์ ์น ํ์ด์ง, ์ด๋ฏธ์ง, ๋์์ ๋ฑ์ ํ์ผ์ด ์์นํ ์ ๋ณด๋ฅผ ๋ํ๋ธ๋ค.
URI๋ Uniform Resource Identifier์ ์ค์๋ง๋ก, ์ผ๋ฐ์ ์ผ๋ก URL์ ๊ธฐ๋ณธ ์์์ธ scheme, hosts, url-path์ ๋ํด query, bookmark๋ฅผ ํฌํจํ๋ค.
๋ธ๋ผ์ฐ์ ์ ๊ฒ์์ฐฝ์ ํด๋ฆญํ๋ฉด ๋ํ๋๋ ์ฃผ์๊ฐ URI์ด๋ค. URI๋ URL์ ํฌํจํ๋ ์์๊ฐ๋ ์ด๋ฏ๋ก
'URL์ URI๋ค.'
๋ โ์ฐธโ์ด๊ณ ,'URI๋ URL์ด๋ค.'
๋ โ๊ฑฐ์งโ์ด๋ค.http://www.google.com:80/search?q=JavaScript
๋ฅผ ๋ธ๋ผ์ฐ์ ์ ๊ฒ์์ฐฝ์ ์ ๋ ฅํ๋ฉด, ๊ตฌ๊ธ์์ JavaScript๋ฅผ ๊ฒ์ํ ๊ฒฐ๊ณผ๊ฐ ๋ํ๋๋ค. ์ด๋ฅผ ์์ธํ ์ดํด ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ ํน์ง์ ๊ฐ๋๋ค.
1-4. HTTP Request & HTTP Response
-
HTTP๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํด์๋ ์๋์ ๊ฐ์ด ์์ฒญ(Request)์ ๋ณด๋ด๊ณ ์๋ต(Response)์ ๋ฐ์์ผ ํฉ๋๋ค.
์ด๋ ์๋ฒ๋ ์์ฒญ์ ๋ฐ์ ํด๋ผ์ด์ธํธ์๊ฒ ๋ฆฌ์์ค๋ฅผ ์ ํ์ฉํ ์ ์๋๋ก ์ธํฐํ์ด์ค(interface)๋ฅผ ์ ๊ณตํด์ค์ผ ํ๋ค.
์ด๊ฒ์ API, ์ ํ๋ฆฌ์ผ์ด์ ํ๋ก๊ทธ๋๋ฐ ์ธํฐํ์ด์ค(Application Programming Interface) ๋ผ๊ณ ํ๋ค.
-
์์์ ์ดํด๋ณธ URL์ ์ด์ฉํ๋ฉด ์๋ฒ์ ํน์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ ์ ์๋ค.
์ฌ๊ธฐ์ ์์ฒญํ๋ ๋ฐ์ดํฐ์ ํน์ ๋์์ ์ํํ๊ณ ์ถ์ผ๋ฉด HTTP ์์ฒญ ๋ฉ์๋(Http Request Methods)๋ฅผ ์ด์ฉํ๋ค.
์ผ๋ฐ์ ์ผ๋ก HTTP ์์ฒญ ๋ฉ์๋๋ HTTP Verbs๋ผ๊ณ ๋ ๋ถ๋ฆฌ์ฐ๋ฉฐ ์๋์ ๊ฐ์ด ์ฃผ์ ๋ฉ์๋๋ฅผ ๊ฐ๊ณ ์๋ค.
-
GET : ์กด์ฌํ๋ ์์์ ๋ํ ์์ฒญ
-
POST : ์๋ก์ด ์์์ ์์ฑ
-
PUT(PATCH) : ์กด์ฌํ๋ ์์์ ๋ํ ๋ณ๊ฒฝ
-
DELETE : ์กด์ฌํ๋ ์์์ ๋ํ ์ญ์
-
-
๋ค์ํ ์์ฒญ ๋ฉ์๋๋ ํด๋น ๋ฌธ์์์ ์ฐธ์กฐํ์. ์ฐธ์กฐ : MDN
1-5. HTTP ๋ฉ์ธ์ง ํฌ๋งท
-
์์์ ๋งํ ๋ด์ฉ์ ์์ฝํ๋ฉด, HTTP๋ ํน์ ์ํ๋ฅผ ์ ์งํ์ง ์์ผ๋ฉฐ ์น ๋ธ๋ผ์ฐ์ ์ ์น ์๋ฒ์ ์ํต์ ์ํด ๋์์ธ๋์์ผ๋ฉฐ (1-2. HTTP ํ๋กํ ์ฝ์ด๋?) ํด๋ผ์ด์ธํธ-์๋ฒ ๋ชจ๋ธ์์ ํด๋ผ์ด์ธํธ๊ฐ HTTP messages ์์์ ๋ง์ถฐ ์์ฒญ์ ๋ณด๋ด๋ฉด, ์๋ฒ๋ HTTP messages ์์์ ๋ง์ถฐ ์๋ตํ๋ค ๋ฐฐ์ ๋ค. (1-4. HTTP Request & HTTP Response).
HTTP messages๋ ์์ฒญ(Requests)๊ณผ ์๋ต(Responses)์์ ๋ค์๊ณผ ๊ฐ์ ๊ตฌ์กฐ๋ฅผ ์ง๋๋ค.
-
start line : start line์๋ ์์ฒญ์ด๋ ์๋ต์ ์ํ๋ฅผ ๋ํ๋ด๋ฉฐ, ํญ์ ์ฒซ ๋ฒ์งธ ์ค์ ์์นํ๋ค. ์๋ต์์๋ status line์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
-
HTTP headers : ์์ฒญ์ ์ง์ ํ๊ฑฐ๋, ๋ฉ์์ง์ ํฌํจ๋ ๋ณธ๋ฌธ์ ์ค๋ช ํ๋ ํค๋์ ์งํฉ.
-
empty line : ์์ฒญ์ ๋ํ ๋ชจ๋ ๋ฉํ ์ ๋ณด๊ฐ ์ ์ก๋์์์ ์๋ฆฌ๋ ๋น ์ค
-
body : ์์ฒญ๊ณผ ๊ด๋ จ๋ ๋ฐ์ดํฐ๋ ์๋ต๊ณผ ๊ด๋ จ๋ ๋ฐ์ดํฐ ๋๋ ๋ฌธ์๋ฅผ ํฌํจํ๋ค. ์์ฒญ๊ณผ ์๋ต์ ์ ํ์ ๋ฐ๋ผ ์ ํ์ ์ผ๋ก ์ฌ์ฉ๋๋ค.
์ด ์ค start line๊ณผ HTTP headers๋ฅผ ๋ฌถ์ด ์์ฒญ์ด๋ ์๋ต์ ํค๋(head)๋ผ๊ณ ํ๊ณ , payload๋ body๋ผ๊ณ ์ด์ผ๊ธฐํฉ๋๋ค.
ํ์ด๋ก๋(์์ด: payload)๋ ์ฌ์ฉ์ ์์ด์ ์ ์ก๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ปํ๋ค.
ํ์ด๋ก๋๋ ์ ์ก์ ๊ทผ๋ณธ์ ์ธ ๋ชฉ์ ์ด ๋๋ ๋ฐ์ดํฐ์ ์ผ๋ถ๋ถ์ผ๋ก ๊ทธ ๋ฐ์ดํฐ์ ํจ๊ป ์ ์ก๋๋ ํค๋์ ๋ฉํ๋ฐ์ดํฐ์ ๊ฐ์ ๋ฐ์ดํฐ๋ ์ ์ธํ๋ค. ์ฐธ์กฐ : MDN
-
1-6. HTTP ์์ฒญ (Request)
-
HTTP ์์ฒญ์ ์๋ฒ๊ฐ ํน์ ๋์์ ์ทจํ๊ฒ๋ ๋ง๋ค๊ธฐ ์ํด ํด๋ผ์ด์ธํธ์์ ์ ์กํ๋ ๋ฉ์์ง๋ผ๋๊ฑธ ์์์ ํ์ตํ์๋ค. ์ด ๋ฉ์ธ์ง์ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ด ์ด๋ฃจ์ด์ ธ ์๋ค.
-
์์์ค
-
์ํํ ์์ (GET, PUT, POST ๋ฑ)์ด๋ ๋ฐฉ์(HEAD or OPTIONS)์ ์ค๋ช ํ๋ HTTP method๋ฅผ ๋ํ๋ธ๋ค.
์๋ฅผ ๋ค์ด GET method๋ ๋ฆฌ์์ค๋ฅผ ๋ฐ์์ผ ํ๊ณ , POST method๋ ๋ฐ์ดํฐ๋ฅผ ์๋ฒ๋ก ์ ์กํ๋ค.
-
์์ฒญ ๋์(์ผ๋ฐ์ ์ผ๋ก URL์ด๋ URI) ๋๋ ํ๋กํ ์ฝ, ํฌํธ, ๋๋ฉ์ธ์ ์ ๋ ๊ฒฝ๋ก๋ ์์ฒญ ์ปจํ ์คํธ์ ์์ฑ๋๋ค.
์ด ์์ฒญ ํ์์ HTTP method ๋ง๋ค ๋ค๋ฅด๋ค.
-
HTTP ๋ฒ์ ๋ง๋ค ๋ฉ์์ง์ ๊ตฌ์กฐ๊ฐ ๋ค๋ฅด๋ค.
์ด๋ฅผ ์ํด HTTP ๋ฒ์ ์ ํจ๊ป ์ ๋ ฅํ๋ค.
-
-
ํค๋ : ์์ฒญ์ Headers๋ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ฅผ ๋ฐ๋ฅธ๋ค.
๋์๋ฌธ์ ๊ตฌ๋ถ ์๋ ๋ฌธ์์ด๊ณผ ์ฝ๋ก (:), ๊ฐ์ ์ ๋ ฅํฉ๋๋ค.
๊ฐ์ ํค๋์ ๋ฐ๋ผ ๋ค๋ฅด๋ค. ์ฌ๋ฌ ์ข ๋ฅ์ ํค๋๊ฐ ์์ผ๋ฉฐ ์ฐธ์กฐ๋ฅผ ํตํด ํ์ธํ์. ์ฐธ์กฐ : MDN
-
๋ฐ๋ : ์์ฒญ์ ๋ณธ๋ฌธ์ HTTP messages ๊ตฌ์กฐ์ ๋ง์ง๋ง์ ์์นํ๋ค.
ํ์ง๋ง, ๋ชจ๋ ์์ฒญ์ body๊ฐ ํ์ํ์ง๋ ์๋๋ค.
GET
,HEAD
,DELETE
,OPTIONS
์ฒ๋ผ ์๋ฒ์ ๋ฆฌ์์ค๋ฅผ ์์ฒญํ๋ ๊ฒฝ์ฐ์๋ ๋ณธ๋ฌธ์ด ํ์ํ์ง ์๋๋ค.POST
๋PUT
๊ณผ ๊ฐ์ ์ผ๋ถ ์์ฒญ์ ์กด์ฌํ๋ ์์์ ๋ํ ๋ณ๊ฒฝ ๋ฐ ์ ๋ฐ์ดํธ๊ฐ ํ์ํ๋ฏ๋ก ์ฌ์ฉ๋๋ค.
1-7. HTTP ์๋ต(Responses)
-
์ ๋ฐ์ ์ธ ๋ด์ฉ์ ์์ฒญ๊ณผ ๋น์ทํ์ง๋ง ๋ค๋ฅธ์ ๋ง ์์ ํด๋ณด์๋ค.
-
์์์ค
-
ํ์ฌ ํ๋กํ ์ฝ์ ๋ฒ์ (HTTP/1.1)
-
์ํ ์ฝ๋ : ์์ฒญ์ ๊ฒฐ๊ณผ๋ฅผ ์ฝ๋๋ฒํธ๋ก ๋ํ๋ธ๋ค (200, 302, 404 ETCโฆ)
-
์ํ ํ ์คํธ : ์ํ ์ฝ๋์ ๋ํ ์ค๋ช
-
-
ํนํ ์ด ์ํ ์ฝ๋๋ฅผ ํตํ์ฌ ์๋ฌ์ฒ๋ฆฌ๋ฅผ ํ ์ ์๊ธฐ ๋๋ฌธ์ ํ๋ก ํธ์๋ ํด๋ผ์ด์ธํธ ๊ฐ๋ฐ์์๊ฒ ๊ฐ์ฅ ์ค์ํ ์ ๋ณด์ด๋ค.
์ฃผ์ ์ํ ์ฝ๋๋ 200๋ฒ๋๋ถํฐ 500๋ฒ๋๊น์ง ๋ค์ํ๊ฒ ์์ง๋ง ์ฃผ์ํ ์ํ ์ฝ๋๋ง ๋ช ๊ฐ ์ดํด๋ณด์๋ฉด,
-
2xx : 200๋ฒ๋์ ์ํ ์ฝ๋๋ ๋๋ถ๋ถ ์์ฒญ์ ๋ํ ์๋ต ์ฑ๊ณต์ ์๋ฏธํ๋ค.
-
3xx : 300๋ฒ๋์ ์ํ ์ฝ๋๋ ๋๋ถ๋ถ ํด๋ผ์ด์ธํธ๊ฐ ์ด์ ์ฃผ์๋ก ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ์ฌ ์๋ฒ์์ ์ URL๋ก ๋ฆฌ๋ค์ด๋ ํธ๋ฅผ ์ ๋ํ๋ ๊ฒฝ์ฐ์ด๋ค.
-
4xx : 400๋ฒ๋ ์ํ ์ฝ๋๋ ๋๋ถ๋ถ ํด๋ผ์ด์ธํธ์ ์ฝ๋๊ฐ ์๋ชป๋ ๊ฒฝ์ฐ์ด๋ค. ์ ํจํ์ง ์์ ์์์ ์์ฒญํ๊ฑฐ๋ ์์ฒญ์ด๋ ๊ถํ์ด ์๋ชป๋ ๊ฒฝ์ฐ ๋ฐ์ํ๋ค. ๊ฐ์ฅ ์ต์ํ ์ํ ์ฝ๋๋ 404 ์ฝ๋์ด๋ค. ์์ฒญํ ์์์ด ์๋ฒ์ ์๋ค๋ ์๋ฏธ์ด๋ค.
์นํ์ด์ง์์ ์ข ์ข ๊ฒช๋ 404 ์๋ฌ ์ถ๋ ฅ ๋ฉ์ธ์ง -
5xx : 500๋ฒ๋ ์ํ ์ฝ๋๋ ์๋ฒ ์ชฝ์์ ์ค๋ฅ๊ฐ ๋ ๊ฒฝ์ฐ์ด๋ค.
-
2. SSR๊ณผ CSR
2-1. SSR(Server Side Rendering)
-
์น ํ์ด์ง๋ฅผ ๋ธ๋ผ์ฐ์ ์์ ๋ ๋๋งํ๋ ๋์ ์, ์๋ฒ์์ ๋ ๋๋งํ๋ ๊ฒฝ์ฐ๋ฅผ ์ผ์ปซ๋๋ค.
๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฒ์ URI๋ก
GET
์์ฒญ์ ๋ณด๋ด๋ฉด, ์๋ฒ๋ ์ ํด์ง ์น ํ์ด์ง ํ์ผ์ ๋ธ๋ผ์ฐ์ ๋ก ์ ์กํ๋ค.๊ทธ๋ฆฌ๊ณ ์๋ฒ์ ์น ํ์ด์ง๊ฐ ๋ธ๋ผ์ฐ์ ์ ๋์ฐฉํ๋ฉด ์์ ํ ๋ ๋๋งํ๊ฒ ๋๋ค.
์๋ฒ์์ ์น ํ์ด์ง๋ฅผ ๋ธ๋ผ์ฐ์ ๋ก ๋ณด๋ด๊ธฐ ์ ์, ์๋ฒ์์ ์์ ํ ๋ ๋๋งํ๊ธฐ ๋๋ฌธ์
Server Side Rendering
์ด๋ผ๊ณ ํ๋ค.์น ํ์ด์ง์ ๋ด์ฉ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๊ฐ ํ์ํ ๊ฒฝ์ฐ, ์๋ฒ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์จ ๋ค์ ์น ํ์ด์ง๋ฅผ ์์ ํ ๋ ๋๋ง ๋ ํ์ด์ง๋ก ๋ณํํ ํ์ ๋ธ๋ผ์ฐ์ ์ ์๋ต์ผ๋ก ๋ณด๋ธ๋ค.
์น ํ์ด์ง๋ฅผ ์ดํด๋ณด๋ ์ฌ์ฉ์๊ฐ, ๋ธ๋ผ์ฐ์ ์ ๋ค๋ฅธ ๊ฒฝ๋ก๋ก ์ด๋ํ๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ๋ค๋ฅธ ๊ฒฝ๋ก๋ก ์ด๋ํ ๋๋ง๋ค ์๋ฒ๋ ์ด ์์ ์ ๋ค์ ์ํํ๋ค.
2-2. CSR(Client Side Rendering)
-
SSR์ด ์๋ฒ ์ธก์์ ํ์ด์ง๋ฅผ ๋ ๋๋งํ๋ค๋ฉด, CSR์ ํด๋ผ์ด์ธํธ์์ ํ์ด์ง๋ฅผ ๋ ๋๋งํ๋ค.
๋ธ๋ผ์ฐ์ ์ ์์ฒญ์ ์๋ฒ๋ก ๋ณด๋ด๋ฉด ์๋ฒ๋ ์น ํ์ด์ง๋ฅผ ๋ ๋๋งํ๋ ๋์ , ์น ํ์ด์ง์ ๊ณจ๊ฒฉ์ด ๋ ๋จ์ผ ํ์ด์ง๋ฅผ ํด๋ผ์ด์ธํธ์ ๋ณด๋ธ๋ค. ์ด๋ ์๋ฒ๋ ์น ํ์ด์ง์ ํจ๊ป JavaScript ํ์ผ์ ๋ณด๋ด์ด์ ํด๋ผ์ด์ธํธ๊ฐ ์น ํ์ด์ง๋ฅผ ๋ฐ์ผ๋ฉด, ์น ํ์ด์ง์ ํจ๊ป ์ ๋ฌ๋ JavaScript ํ์ผ์ ๋ธ๋ผ์ฐ์ ์์ ์น ํ์ด์ง๋ฅผ ์์ ํ ๋ ๋๋ง ๋ ํ์ด์ง๋ก ๋ฐ๊พธ๊ฒ๋๋ค.
์น ํ์ด์ง์ ํ์ํ ๋ด์ฉ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ ๋ฐ์ดํฐ์ธ ๊ฒฝ์ฐ์๋ ๋ธ๋ผ์ฐ์ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ ์น ํ์ด์ง์ ๋ ๋๋ง์ ํด์ผ ํ๋ค. ์ด๋ฅผ ์ํด API๊ฐ ์ฌ์ฉ๋๋ค. ์น ํ์ด์ง๋ฅผ ๋ ๋๋งํ๋ ๋ฐ์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ API ์์ฒญ์ผ๋ก ํด๊ฒฐํ ์ ์๋ค.
๋ง์ง๋ง์ผ๋ก, ๋ธ๋ผ์ฐ์ ๊ฐ ๋ค๋ฅธ ๊ฒฝ๋ก๋ก ์ด๋ํ๋ฉด SSR๊ณผ ๋ค๋ฅด๊ฒ ์๋ฒ๊ฐ ์น ํ์ด์ง๋ฅผ ๋ค์ ๋ณด๋ด์ง ์๋๋ค. ๋ธ๋ผ์ฐ์ ๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์์ฒญํ ๊ฒฝ๋ก์ ๋ฐ๋ผ ํ์ด์ง๋ฅผ ๋ค์ ๋ ๋๋งํ๋ฉฐ, ์ด๋ ๋ณด์ด๋ ์น ํ์ด์ง์ ํ์ผ์ ๋งจ ์ฒ์ ์๋ฒ๋ก๋ถํฐ ์ ๋ฌ๋ฐ์ ์น ํ์ด์ง ํ์ผ๊ณผ ๋์ผํ ํ์ผ์ด๋ค.
2-3. SSR๊ณผ CSR์ ์ฐจ์ด์
-
์ฐ์ ์๋์ ์ธ ์ธก๋ฉด์ ๋ณด๋ฉด, ์น ํ์ด์ง ๋ก๋ฉ์ ์ข ๋ฅ๋ ๋ ๊ฐ์ง๋ก ๋๋ ์ ์๋ค. ํ๋๋ ์น ์ฌ์ดํธ์ ๊ฐ์ฅ ์ฒซ ํ์ด์ง๋ฅผ ๋ก๋ฉํ๋ ๊ฒ ๊ทธ๋ฆฌ๊ณ , ๋ค๋ฅธ ํ๋๋ ๋๋จธ์ง๋ฅผ ๋ก๋ฉํ๋ ๊ฒ์ ๊ผฝ์ ์ ์๋ค.
์ฒซ ํ์ด์ง ๋ก๋ฉ์๊ฐ์ CSR์ ๊ฒฝ์ฐ HTML, CSS์ ๋ชจ๋ ์คํฌ๋ฆฝํธ๋ค์ ํ ๋ฒ์ ๋ถ๋ฌ์จ๋ค. ๋ฐ๋ฉด SSR์ ํ์ํ ๋ถ๋ถ์ HTML๊ณผ ์คํฌ๋ฆฝํธ๋ง ๋ถ๋ฌ์ค๊ฒ ๋๋ค. ๋ฐ๋ผ์ ํ๊ท ์ ์ผ๋ก SSR์ด ๋ ๋น ๋ฅด๋ค.
๋๋จธ์ง ๋ก๋ฉ ์๊ฐ์ ์ฒซ ํ์ด์ง๋ฅผ ๋ก๋ฉํ ํ, ์ฌ์ดํธ์ ๋ค๋ฅธ ๊ณณ์ผ๋ก ์ด๋ํ๋ ์์ ๋์์ ๊ฐ์ ํ์. CSR์ ์ด๋ฏธ ์ฒซ ํ์ด์ง ๋ก๋ฉํ ๋ ๋๋จธ์ง ๋ถ๋ถ์ ๊ตฌ์ฑํ๋ ์ฝ๋๋ฅผ ๋ฐ์์๊ธฐ ๋๋ฌธ์ ๋น ๋ฅด๋ค. ๋ฐ๋ฉด, SSR์ ์ฒซ ํ์ด์ง๋ฅผ ๋ก๋ฉํ ๊ณผ์ ์ ์ ํํ๊ฒ ๋ค์ ์คํํ๋ค. ๊ทธ๋์ ๋ ๋๋ฆฌ๋ค.
-
๊ฒ์ ์์ง์ ์๋ํ๋ ํ๋ก๊ทธ๋จ โํฌ๋กค๋ฌโ๋ก ์น ์ฌ์ดํธ๋ค์ ์ฝ๋๋ค.
CSR์ ์น ํ์ด์ง์ ํจ๊ป ์ ๋ฌ ๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์คํ์์ผ ๋์ ์ผ๋ก ์ปจํ ์ธ ๊ฐ ์์ฑ๋๊ธฐ ๋๋ฌธ์ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ์คํ ๋์ด์ผ ์ฌ๋ฐ๋ฅธ ๋ฆฌ์์ค๊ฐ ๋ฐ๋๊ฒ ๋๋ค. ํ์ง๋ง SSR์ ์ ์ด์ ์๋ฒ ์ฌ์ด๋์์ ์ปดํ์ผ๋์ด ํด๋ผ์ด์ธํธ๋ก ๋์ด์ค๊ธฐ ๋๋ฌธ์ ํฌ๋กค๋ฌ์ ๋์ํ๊ธฐ ์ฉ์ดํ๋ค.
๐ค Understanding
-
HTTP ๋, ์๋ฒ-ํด๋ผ์ด์ธํธ๊ฐ์ ์ํธ๊ฐ์ ํ์ ๋ ๊ท์น์ผ๋ก ์์์ ์ฃผ๊ณ ๋ฐ๋ ์ผ๋ จ์ ๊ณผ์ ๋ค์ ํ์ตํ์๋ค.
์ฝ๊ฐโฆ ๊ตฌ์กฐ์ ์ธ ๋ด์ฉ์ ํ์ต์ด์๋ค. ๋ฌธ๋ฒ์ด๋ ์ฝ๋๊ธฐ์ ๋ฑ์ด ์๋ ์์ด์ ์ด๊ณ ๊ทผ๋ณธ์ ์ธ ๋ด์ฉ์ด๋๊น??
์ฐ์ ์ค๋ ํ์ต๋ด์ฉ์ ์ต๋ํ ์์ฝํ์๋ฉด,
ํด๋ผ์ด์ธํธ๋ ํน์ ๋ โ์์ฒญ ๋ฉ์๋โ๋ก ์๋ฒ์ ์์์ ์๊ตฌํ๊ณ , ์๋ฒ๋ ํด๋น ์์ฒญ์ โ์๋ต ์ฝ๋โ๊ฐ ํฌํจ๋ ์๋ต์ผ๋ก ๋ต๋ณ์ ํ๋ค.
์ด๋ ์ํธ๊ฐ์ ๋ํ(?)๋ ํ๋กํ ์ฝ์ด๋ผ๋ ์ํธ๊ฐ์ ๊ท์ ๋ ๊ท์น์ผ๋ก ์ด๋ค์ง๋ค.
์ ๋๋ก ๋งํ ์ ์๋ค.
ํด๋น ์ฌ์ง์ ํ๋ฆ์ผ๋ก โ์๋ฒ-ํด๋ผ์ด์ธํธ ๊ฐ์ Request & Responses๊ฐ ์ด๋ค์ง๋ค.โ ๋ผ๋ ๋ด์ฉ์ ๋จธ๋ฆฟ์์ ์ง์ด๋ฃ์๋ค ์๊ฐํ๋ค.
-
SSR ๊ณผ CSR์ด ์ธ์ ํ์ํ๋ฉฐ, ๊ฐ๊ฐ์ ์ฅ๋จ์ ์ ์ง๊ณ ๋์ด๊ฐ๋ค. SSR์ด ๋ค์ ๊ฐ๊ด์ ๋ฐ๋ ๋ฏํ ๋ถ์๊ธฐ๋๋ฐ.. ์กฐ๊ธ ๋ ๊ณต๋ถ๊ฐ ํ์ํ ๋ฏ ํ๋ค.