์ธํฐ๋ท์์ ์ ๊ณต๋๋ ํ์ดํผํ ์คํธ ์์คํ
โ๏ธ ํ์ดํผํ ์คํธ
๋ฌธ์์์ ๋ค๋ฅธ ๋ฌธ์์ ์์น์ ๋ณด ๋ฑ์ ํฌํจํ์ฌ ๋ฌธ์ ๊ฐ์ ์ ๋ณด๋ฅผ ์๋ก ์ฐ๊ด ์ง์ด ์ฐธ์กฐ ํ ์ ์๋ ๋ฌธ์
HTML๋ก ๋ํ๋๋ ํ์ดํผํ ์คํธ ์ธ์ด์ ์ธํฐ๋ท์ด ์ตํฉํ์ฌ ํ์
โ๏ธ HTML
์ด์์ฒด์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ฌ๋ผ๋ ๋ธ๋ผ์ฐ์ ๋ง ์์ผ๋ฉด ๋ชจ๋๊ฐ ๋์ผํ ์ ๋ณด๋ฅผ ๋ณผ ์ ์๋ ์ผ์ ํ ํ์ ๊ธฐ์ค
๋ฆฌ์์ค๊ฐ ์กด์ฌํ๋ ๊ณณ(์๋ฒ)๊ณผ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋ ์ฑ(ํด๋ผ์ด์ธํธ)์ ๋ถ๋ฆฌ์ํจ ๊ฒ
ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ฉด ์๋ฒ๋ ๋ฆฌ์์ค๋ฅผ ์ ๋ฌํด์ฃผ๋ ์ญํ ์ ํจ
๊ธฐ์กด 2ํฐ์ด ์ํคํ ์ณ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ถ๊ฐ๋ ํํ
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฆฌ์์ค๋ฅผ ์ ์ฅํ๋ ์ฐฝ๊ณ ๊ฐ์ ์ญํ
ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ฉด ์๋ฒ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ ์ฅ๋ ๋ฆฌ์์ค๋ฅผ ๋นผ๋ด์ ์ ๋ฌ
ํด๋ผ์ด์ธํธ-์๋ฒ ๊ฐ์ ์ฐ๊ฒฐ์์ ์ด๋ป๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ๋ด๋ถ์ ์์๋ค์ด ์ํธ ์ํตํ๋์ง ์ค๋ช ํ๋ ๋ฐฉ๋ฒ
์ ์ ๊ฐ ์น๋ธ๋ผ์ฐ์ ์์ ์ด๋ ํ ์์ฒญ์ ํ ๋, ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ํ ์์๋ค์ ์ํธ์์ฉ์ ์ ์งํ ์ ์๋๋ก ์๋ก๋ฅผ ๊ฒฐ๋ถ์ํค๋ ๋ผ๋
์ธํฐ๋ท์ ๊ณต๊ฐ๋๋ ์๊ฐ ๋ง๋ํ ํธ๋ํฝ์ ๋ ธ์ถ๋ ์ ์๊ธฐ ๋๋ฌธ์ ๊ณ ๋ คํด์ผํ ์์๋ค์ด ์์ โฌ๏ธ
- ์ ๋ขฐ์ฑ (reliability)
- ํ์ฅ์ฑ (scalability)
- ๋ณด์์ฑ (security)
- ๊ฒฌ๊ณ ์ฑ (robustness)
๋ธ๋ผ์ฐ์ ์ url ์ ๋ ฅ
๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฒ ์ฃผ์ ์ฐพ๊ธฐ ์ํด DNS ์๋ฒ์ ์์ฒญ ๋ณด๋
IP ์ฃผ์ ์ฐพ์ผ๋ฉด ํด๋น ์ฃผ์์ HTTPS ์์ฒญ ๋ณด๋
โ ์ด๋ฏธ ๋ฐฉ๋ฌธ ๊ธฐ๋ก์ด ์บ์ ๋ฉ๋ชจ๋ฆฌ์ ์์ผ๋ฉด ์ฃผ์๋ฅผ ์บ์ ๋ฉ๋ชจ๋ฆฌ์์ ๊ฐ์ ธ์ด
์น์๋ฒ์ ์์ฒญ์ด ๋์ฐฉ
์น์๋ฒ๊ฐ ์ ์ฅ์์ ์์ฒญ์ ๋ณด๋ด ํ์ด์ง ๊ด๋ จ ๋ฐ์ดํฐ๋ค ๊ฐ์ ธ์ด
โ ์ ๋ณด๋ค์ ๊ฐ์ ธ์ค๋ ์ค์ ๋น์ง๋์ค ๋ก์ง์ด ์์ฉ
( ๋น์ง๋์ค ๋ก์ง๋ค์ ๊ฐ ๋ฐ์ดํฐ๋ค์ ์ด๋ป๊ฒ ๋ค๋ฃฐ์ง๊ฐ ์ ํด์ ธ ์์ )
๋ก์ง๋ค์ ํตํด ์์ฒญ ๋ฐ์ ๋ฐ์ดํฐ๋ค์ด ์ฒ๋ฆฌ๋๊ณ ๋ธ๋ผ์ฐ์ ์ ์๋ต
์์ฒญ๋ค์ด ๋ธ๋ผ์ฐ์ ์ ์๋ต์ผ๋ก ๋์์์ ๋, web page ํ๋ฉด์์ ์ถ๋ ฅ
๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ client-side์ server-side๋ก ์๋ํ๊ธฐ์ ์ ์ ๊ฐ ์์ฒญํ๋ฉด ํฌ๊ฒ ์๋์ ๋ ํ๋ก๊ทธ๋จ์ด ์๋ํจ โฌ๏ธ
- ์ ์ ์ ์ ๋ ฅ์ ๋ฐ๋ผ ๋ธ๋ผ์ฐ์ ์์ ์๋ํ๋ ํ๋ก๊ทธ๋จ (client-side)
โ ์ด๋ฅผ ๊ฐ๋ฐํ๋ฉด front-end
โ ์ฃผ๋ก ๊ฐ๋ฐ์ ์ํด HTML, CSS, and JavaScript ์กฐํฉ
โ ์ฝ๋๋ ๋ธ๋ผ์ฐ์ ์ ์ํด ๋ถ์๋์ด ์ฒ๋ฆฌ๋จ
โ ์๋ฒ์ ์ํต์ HTTP ์์ฒญ์ ํตํด ์ด๋ฃจ์ด์ง
โ - HTTP ์์ฒญ์ ๋ฐ๋ผ ์๋ฒ์์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ํ๋ก๊ทธ๋จ (server-side)
โ ์ด๋ฅผ ๊ฐ๋ฐํ๋ฉด back-end
โ ์๋ฒ์ฌ์ด๋์์ ์คํ ๊ฐ๋ฅํ๊ณ HTTP ์์ฒญ์ ์๋ตํ ์ ์๋ ์ธ์ด๋ค์ด ์ฌ์ฉ
โ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ๊ธฐ๋ฅ์ ์ธ ๋ถ๋ถ ์ธ์ ์์๋ค
Ex. ์๋ฆผ, ํ๊ฒฝ์ค์ ๋ฑ
โ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ๊ธฐ๋ฅ์ ์ธ ๋ถ๋ถ (์ ์ฒด์ ์ธ ๊ตฌ์กฐ)
โ ์น ๋ธ๋ผ์ฐ์ ๋ ํด๋ผ์ด์ธํธ, ์น ์ ํ๋ฆฌ์ผ์ด์
์๋ฒ, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ด๋ฃจ์ด์ ธ ์์
โ ์ ์ ์ ๋ธ๋ผ์ฐ์ ๋ฑ์ ์ด์ฉํด ์ง์ ์ ์ผ๋ก ์ ์ด
โ Web Server, ์ ์ ์ธํฐํ์ด์ค ์์๋ค์ด ์ด ๊ณ์ธต์ ํฌํจ
โ Business Layer, Business Logic ํน์ Domain Logic ์ด๋ผ๊ณ ๋ถ๋ฆฌ๊ธฐ๋ ํจ
โ ์ ์ ์ ์์ฒญ์ ๋ธ๋ผ์ฐ์ ๋ก๋ถํฐ ๋ฐ์์ ์ฒ๋ฆฌ
โ Application Server๊ฐ ์ด ๊ณ์ธต์ ํฌํจ
โ ๋ฐ์ดํฐ ์ ๊ทผ์ ์ํ ๊ฒฝ๋ก๋ฅผ ๊ท๊ฒฉํ ํ๋ ๋ฑ์ ๊ณผ์ ์ด ์ด ๊ณ์ธต์ ์์ฑ๋จ
โ Persistence layer ๋ผ๊ณ ๋ ๋ถ๋ฆผ
โ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํฐ ์ ์ฅ์์ ์ ๊ทผํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ ์ค๊ฑฐ๋ ์ ์ฅ์ ๋ด๋น
โ ์ด ๋จ๊ณ๋ฅผ ํตํด Application Layer ์ ๋ก์ง๋ค์ด '์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํด์ ๋ฐ์ดํฐ๋ฅผ ํ์ํ๊ณ ํน์ ์ ์ฅํ ์ง'๋ฅผ ๋ ์ต์ ํ ๊ฐ๋ฅ
โ๏ธ ์ฃผ 3๊ฐ ๊ณ์ธต์ ์ํ์ง ์๋ ์์๋ค
- Cross-cutting
์ฃผ๋ก ๋ณด์, ํต์ , ์ด์ ๊ด๋ฆฌ๋ฑ์ ์ํ ์์๋ค
โ - Third-party integrations
์ 3์ API ์๋น์ค๋ฅผ ์ด์ฉํ๋ ๊ฒ
Ex. OAuth 2.0์ ์ด์ฉํ ์์ ๋ก๊ทธ์ธ, PG์ฌ๋ฅผ ์ด์ฉํ ๊ฒฐ์ฌ๊ธฐ๋ฅ ๋ฑ
์น ํ์ด์ง์์ ์ผ๋ถ๋ถ๋ง ๋ฐ๊พธ๊ณ ์ถ์ ๋ ์ฌ์ฉ
Ex. ๊ฐ์ ํ๋ฉด์์ ๊ด๊ณ ๋ฐฐ๋๋ง ๋ฐ๋๋ ๊ฒ
ํ์ด์ง๊ฐ ์๋ก ๊ณ ์นจ ๋์ง ์๊ณ , ์์ฒญํ ์๋ต์ ๊ธฐ๋ค๋ฆฌ๋ฉด์ ์ ์ ์ ํ์ด์ง์ ์ํธ์์ฉ์ด ๊ฐ๋ฅํ๊ฒ ํจ
์ฃผ๋ก AJAX, Asynchronous JavaScript, XML๊ฐ ์ฌ์ฉ๋จ
์๊ณ ๊ฐ๋ฒผ์ด ํน์ ํ ํ๊ฐ์ง ๊ธฐ๋ฅ์ ์ง์คํ ์น ์ ํ๋ฆฌ์ผ์ด์
์ํ๋ ์ธ์ด๋ฅผ ์ฌ์ฉํด ๊ธฐ๋ฅ ๊ฐ๋ฐ์ ์ ์ฐ์ฑ์ ๋ ๊ฐ๊ฒ ๋๊ณ , ๊ฐ๋ฐ ๊ณผ์ ์ ์ ๋ฐ์ ์ธ ์๋์ ์์ฐ์ฑ์ด ํฅ์
๊ฐ๋ฐ์๊ฐ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ฒ์ ๊ธฐํ ๊ธฐ๋ฐ ๊ธฐ๋ฅ๋ค์ ๋ํด ์ธ๋ถ์ 3์์ธ ํด๋ผ์ฐ๋ ์๋น์ค ์ ๊ณต์์๊ฒ ์ํํ๋ ๋ฐฉ์
๊ฐ๋ฐ์๊ฐ ์๋ฒ ๊ฑฑ์ ์์ด ํน์ ๊ธฐ๋ฅ ๊ฐ๋ฐ์ ์ง์คํ ์ ์๊ฒ ํจ
โ๏ธ AJAX ( Asynchronous JavaScript And XMLHttpRequest)
- JS, DOM, Fetch, XMLHttpRequest, HTML ๋ฑ์ ๋ค์ํ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ, SPA(Single Page Application)๋ฅผ ๋ง๋๋ ๊ธฐ์
โ - ์น ํ์ด์ง์ ํ์ํ ๋ถ๋ถ์ ํ์ํ ๋ฐ์ดํฐ๋ง ๋น๋๊ธฐ์ ์ผ๋ก ๋ฐ์์ ํ๋ฉด์ ๊ทธ๋ ค๋ผ ์ ์์
Ex. ๊ฒ์์ฐฝ์ ํ๊ธ์์ฉ ์ ๋ ฅํ ๋๋ง๋ค ์๋ ์ถ์ฒ ๊ฒ์์ด๊ฐ ๋ฐ๋
โ
โ๏ธ ํต์ฌ ๊ธฐ์- JS / DOM / Fetch
โ Fetch๋ฅผ ์ฌ์ฉํ์ฌ ํ์ด์ง ์ด๋์ด ์์ด๋ ์๋ฒ๋ก๋ถํฐ ํ์ํ ๋ฐ์ดํฐ ๋ฐ์์ค๊ธฐ ๊ฐ๋ฅ
( โ Fetch๊ฐ ์๋ฒ์ ์์ฒญ์ ๋ณด๋ด๊ณ ์๋ต์ ๋ฐ์ ๋๊น์ง ๊ณ์ํด์ ํ์ด์ง๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ํ๋ ๋น๋๊ธฐ์ ์ธ ๋ฐฉ์ )
โ
โ๏ธ ์ฅ์ - ์๋ฒ์์ HTML์ ์์ฑํ์ฌ ๋ณด๋ด์ฃผ์ง ์์๋ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๋น๋๊ธฐ์ ์ผ๋ก ๊ฐ์ ธ์ ์ผ๋ถ๋ง ์ ๋ฐ์ดํธํ์ฌ ์นํ์ด์ง๋ฅผ ๋ง๋ค ์ ์์
- ๋ธ๋ผ์ฐ์ ์ ์๊ด์์ด ์ฌ์ฉ ๊ฐ๋ฅ
- ๋น ๋ฅด๊ณ ๋ ๋ง์ ์ํธ์์ฉ ๊ฐ๋ฅ ( ์ผ๋ถ๋ง ๋ ๋๋งํ๊ธฐ ๋๋ฌธ์ )
- ๋ ์์ ๋์ญํญ ( ๋ฐ์ดํฐ์ ํฌ๊ธฐ๊ฐ ์์ )
โ
โ๏ธ ๋จ์ - SEO(๊ฒ์์์ง ์ต์ ํ)์ ๋ถ๋ฆฌ ( ๋ผ๋๋ง ์๊ณ ๋ฐ์ดํฐ๋ ์๊ธฐ ๋๋ฌธ์ ์ ๋ณด ๊ธ์ด๊ฐ๊ธฐ ์ด๋ ค์ )
- ๋ค๋ก๊ฐ๊ธฐ ๋ฒํผ ๋ฌธ์ ( ์ด์ ์ํ๋ฅผ ๊ธฐ์ตํ์ง ์๊ธฐ ๋๋ฌธ )
โ์ด๋๋ ๋ณ๋๋ก History API ์ฌ์ฉํด์ผํจ
โ๏ธ Fetch
- XHR์ ๋จ์ ์ ๋ณด์ํ ์๋ก์ด Web API
- XML๋ณด๋ค ๊ฐ๋ณ๊ณ JavaScript์ ํธํ๋๋ JSON์ ์ฌ์ฉ
โ ์ค๋๋ XHR๋ณด๋ค Fetch๋ฅผ ๋ง์ด ์ฌ์ฉ
โ๏ธ ์ธํฐํ์ด์ค (interface)
์์ฌ์ํต์ด ๊ฐ๋ฅํ๋๋ก ๋ง๋ค์ด์ง ์ ์
์น ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌํ์ ์ํด, ์น ๋ธ๋ผ์ฐ์ ์์์ ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ์ ํต์ ์ ๋ด๋นํ๋ ํ๋กํ ์ฝ
๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๊ณ ์์ฒญ์ ๋ํ ์๋ต์ ์ ์กํ๋ ๋ฌด์ํ์ฑ์ ํ๋กํ ์ฝ
์๋ ์์ด๋ ์น(WWW)์ ๋ด์ฌ๋ ํ๋กํ ์ฝ
ํด๋ผ์ด์ธํธ์์์ ๋ฐ์ดํฐ ์์ฒญ๊ณผ ์๋ฒ์์์ ์์ฒญ์ ๋ํ ์๋ต์ ๋ฐ๋ณตํ๋ฉด์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋์ํด
ํด๋ผ์ด์ธํธ ์๋ฒ ๊ตฌ์กฐ
๋ฌด์ํ์ฑ ํ๋กํ ์ฝ (Stateless)
โ ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ ์ํ๋ฅผ ๋ณด์กดํ์ง ์์
Ex. ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ "์ ๋ ์ ์นํจ๋จน์" ๋ผ๊ณ ๋งํ๊ณ ์๋ฒ๊ฐ "๊ทธ๋"๋ผ๊ณ ๋๋ตํจ. ์ ๋ ์ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ "๋จน์ผ๋ฌ ๊ฐ์" ๋ผ๊ณ ๋งํ๋ฉด ์๋ฒ๋ "๋ญ?"์ด๋ผ๊ณ ๋๋ตํจ.
โ
โ ๋ชจ๋ ์์ฒญ์ ํ๋ฒ์ ์๊ธฐํด์ผํจ
( ์ฅ์ : ์๋ฒ๊ฐ ๋๊ตฌ๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ํญ์ ์ฒ๋ฆฌํ ์ ์์ (์๋ฒ ํ์ฅ ํธ๋ฆฌ ))
โ
[์ฐธ๊ณ ] https://www.inflearn.com/questions/223034
๋น ์ฐ๊ฒฐ์ฑ (Connectionless)
โ ๋น ๋ฅธ ์๋ต ๊ฐ๋ฅ
HTTP ๋ฉ์ธ์ง
๋จ์ํจ, ํ์ฅ ๊ฐ๋ฅ
HTTP๋ฅผ ์ด์ฉํด ์ฃผ๊ณ ๋ฐ๋ ๋ฉ์์ง
ํด๋ผ์ด์ธํธ-์๋ฒ ์ฌ์ด์์ ๋ฐ์ดํฐ๊ฐ ๊ตํ๋๋ ๋ฐฉ์
์์ฒญ(Requests), ์๋ต(Responses)์ ๋๊ฐ์ง ์ ํ์ด ์์
์ง์ ์์ฑํ ํ์๊ฐ ์๊ณ , ๊ตฌ์ฑ ํ์ผ, API, ๊ธฐํ ์ธํฐํ์ด์ค์์ ์๋์ผ๋ก ์์ฑํจ
start line
โ ์์ฒญ์ด๋ ์๋ต์ ์ํ ๋ํ๋
โ ํญ์ ์ฒซ ๋ฒ์งธ ์ค์ ์์น
โ ์๋ต์์๋ status line์ด๋ผ๊ณ ๋ถ๋ฆ
HTTP headers
โ ์์ฒญ์ ์ง์ ํ๊ฑฐ๋, ๋ฉ์์ง์ ํฌํจ๋ ๋ณธ๋ฌธ์ ์ค๋ช
ํ๋ ํค๋์ ์งํฉ
โ start line๊ณผ HTTP headers๋ฅผ ๋ฌถ์ด ์์ฒญ์ด๋ ์๋ต์ ํค๋(head)๋ผ๊ณ ํจ
empty line
โ ํค๋์ ๋ณธ๋ฌธ์ ๊ตฌ๋ถํ๋ ๋น ์ค
body
โ ์์ฒญ๊ณผ ๊ด๋ จ๋ ๋ฐ์ดํฐ๋ ์๋ต๊ณผ ๊ด๋ จ๋ ๋ฐ์ดํฐ ๋๋ ๋ฌธ์ (ํ์ด๋ก๋)
( ์์ฒญ๊ณผ ์๋ต์ ์ ํ์ ๋ฐ๋ผ ์ ํ์ ์ผ๋ก ์ฌ์ฉ )
ํ์ด๋ก๋
์ฌ์ฉ์ ์์ด์ ์ ์ก๋๋ ๋ฐ์ดํฐ
Start line
โ๏ธ origin ํ์
โ ?์ ์ฟผ๋ฆฌ ๋ฌธ์์ด์ด ๋ถ๋ ์ ๋ ๊ฒฝ๋ก
โ POST, GET, HEAD, OPTIONS ๋ฑ์ method์ ํจ๊ป ์ฌ์ฉ
POST / HTTP 1.1GET /background.png HTTP/1.0HEAD /test.html?query=alibaba HTTP/1.1OPTIONS /anypage.html HTTP/1.0
โ
โ๏ธ absolute ํ์
โ ์์ ํ URL ํ์
โ ํ๋ก์์ ์ฐ๊ฒฐํ๋ ๊ฒฝ์ฐ ๋๋ถ๋ถ GET method์ ํจ๊ป ์ฌ์ฉ
GET http://developer.mozilla.org/en-US/docs/Web/HTTP/Messages HTTP/1.1
โ
โ๏ธ authority ํ์
โ ๋๋ฉ์ธ ์ด๋ฆ๊ณผ ํฌํธ ๋ฒํธ๋ก ์ด๋ฃจ์ด์ง URL์ authority component
โ HTTP ํฐ๋์ ๊ตฌ์ถํ๋ ๊ฒฝ์ฐ, CONNECT์ ํจ๊ป ์ฌ์ฉ ๊ฐ๋ฅ
CONNECT developer.mozilla.org:80 HTTP/1.1
โ
โ๏ธ asterisk ํ์
โ OPTIONS ์ ํจ๊ป ๋ณํ() ํ๋๋ก ์๋ฒ ์ ์ฒด๋ฅผ ํํ
OPTIONS * HTTP/1.1
Headers
โ ๊ธฐ๋ณธ ๊ตฌ์กฐ ๋ฐ๋ฆ
โ ๋์๋ฌธ์ ๊ตฌ๋ถ ์๋ ๋ฌธ์์ด๊ณผ ์ฝ๋ก (:), ๊ฐ์ ์
๋ ฅ
โ ์ฌ๋ฌ ์ข
๋ฅ์ ํค๋๊ฐ ์๊ณ , ๊ฐ์ ํค๋์ ๋ฐ๋ผ ๋ค๋ฆ
General headers (Reponses์ ๋์ผ)
โ ๋ฉ์์ง ์ ์ฒด์ ์ ์ฉ
โ body๋ฅผ ํตํด ์ ์ก๋๋ ๋ฐ์ดํฐ์๋ ๊ด๋ จ์ด ์๋ ํค๋
Request headers
โ fetch๋ฅผ ํตํด ๊ฐ์ ธ์ฌ ๋ฆฌ์์ค๋ ํด๋ผ์ด์ธํธ ์์ฒด์ ๋ํ ์์ธํ ์ ๋ณด๋ฅผ ํฌํจํ๋ ํค๋
โ User-Agent, Accept-Type, Accept-Language๊ณผ ๊ฐ์ ํค๋๋ ์์ฒญ์ ๊ตฌ์ฒดํ
โ Referer์ฒ๋ผ ์ปจํ
์คํธ๋ฅผ ์ ๊ณตํ๊ฑฐ๋ If-None๊ณผ ๊ฐ์ด ์กฐ๊ฑด์ ๋ฐ๋ผ ์ ์ฝ ์ถ๊ฐ ๊ฐ๋ฅ
Representation headers (Responses์ ๋์ผ)
โ ์ด์ ์๋ Entity headers๋ก ๋ถ๋ฆผ
โ body์ ๋ด๊ธด ๋ฆฌ์์ค์ ์ ๋ณด๋ฅผ ํฌํจํ๋ ํค๋
Ex. ์ฝํ
์ธ ๊ธธ์ด, MIME ํ์
๋ฑ
Body
โ ์์ฒญ์ ๋ณธ๋ฌธ์ HTTP messages ๊ตฌ์กฐ์ ๋ง์ง๋ง์ ์์น
โ ๋ชจ๋ ์์ฒญ์ body๊ฐ ํ์ํ ๊ฒ์ ์๋ (์ ํ์ )
โ ์๋ฒ์ ๋ฆฌ์์ค๋ฅผ ์์ฒญํ๋ ๊ฒฝ์ฐ์๋ ๋ณธ๋ฌธ์ด ํ์ํ์ง ์์
Ex. GET, HEAD, DELETE, OPTIONS
โ ์ผ๋ถ ์์ฒญ์ ๋ฐ์ดํฐ๋ฅผ ์
๋ฐ์ดํธํ๊ธฐ ์ํด ์ฌ์ฉ
Ex. POST, PUT
Status line
HTTP/1.1 404 Not Found.
Headers
โ Request Headers์ ๋์ผํ ๊ตฌ์กฐ
โ ๋์๋ฌธ์ ๊ตฌ๋ถ ์๋ ๋ฌธ์์ด๊ณผ ์ฝ๋ก (:), ๊ฐ์ ์
๋ ฅ
โ ๊ฐ์ ํค๋์ ๋ฐ๋ผ ๋ค๋ฆ
Body
โ ์๋ต์ ๋ณธ๋ฌธ์ HTTP messages ๊ตฌ์กฐ์ ๋ง์ง๋ง์ ์์น
โ ๋ชจ๋ ์๋ต์ body๊ฐ ํ์ํ ๊ฒ์ ์๋
โ 201, 204์ ๊ฐ์ ์ํ ์ฝ๋๋ฅผ ๊ฐ์ง๋ ์๋ต์๋ ๋ณธ๋ฌธ ํ์ X
chunked
๋ก ์ค์ ๋์ด ์๊ณ , ํ์ผ์ chunk
๋ก ๋๋์ด ์ธ์ฝ๋ฉ๋์ด ์์์๋ฒ์ชฝ์์ ๋ ๋๋ง ์ค๋น๋ฅผ ๋๋ง์น ์ํ๋ก ํด๋ผ์ด์ธํธ์๊ฒ ์ ๋ฌํ๋ ๋ฐฉ์
Ex. ๋ฐฐ๋ฏผ์์ ์์ ์ฃผ๋ฌธํ์ ๋ ์กฐ๋ฆฌ๊ฐ ์์ฑ๋ ์ํ๋ก ๋ณด๋ด๋ ๊ฒ
๋ ๋๋ง
2์ฐจ์์ ํ์๋ ๋ฌผ์ฒด๋ฅผ 3์ฐจ์์ ํ์๋ ๋ฌผ์ฒด์ฒ๋ผ ๋ณด์ด๊ฒ ํ๋ ๊ฒ
ํ์ด์ง ์์ฒด๊ฐ ์๋ก๊ณ ์นจ๋์ด ๋ํ๋จ !
์น ์์ด์ ์ / SI ์ชฝ์์ ๋ง์ด ์ฌ์ฉ
๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฒ์ URI๋ก GET ์์ฒญ ๋ณด๋
์๋ฒ๊ฐ ์ ํด์ง ์น ํ์ด์ง ํ์ผ์ ๋ธ๋ผ์ฐ์ ๋ก ์ ์ก
์ฏ๋ฒ์ ์น ํ์ด์ง๊ฐ ๋ธ๋ผ์ฐ์ ์ ๋์ฐฉํ์ฌ ์์ ํ ๋ ๋๋ง
SEO(Search Engine Optimization(๊ฒ์์์ง ์ต์ ํ))๊ฐ ์ฐ์ ์์์ธ ๊ฒฝ์ฐ
์น ํ์ด์ง์ ์ฒซ ํ๋ฉด ๋ ๋๋ง์ด ๋น ๋ฅด๊ฒ ํ์ํ ๊ฒฝ์ฐ ( ๋จ์ผ ํ์ผ์ ์ฉ๋์ด ์ ๊ธฐ ๋๋ฌธ )
์น ํ์ด์ง๊ฐ ์ฌ์ฉ์์ ์ํธ์์ฉ์ด ์ ์ ๊ฒฝ์ฐ
Ex. ๋ค์ด๋ฒ ๋ธ๋ก๊ทธ, ๋ด์ ํ์์ฆ
โ ์ต๋ํ ๊ฒ์์์ง์ ๋ง์ด ๋
ธ์ถ๋๋ ๊ฒ ์ ๋ฆฌํ๊ธฐ ๋๋ฌธ
์ ํ๋ฆฌ์ผ์ด์ ์ ์ง๋น์ฉ์ด ๋์ ( ์์์ด์ฉ์ด ์๋ฒ์ ์ง์ค๋๊ธฐ ๋๋ฌธ )
์ผ๋ถ ์๋ํํฐ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ฒฝ์ฐ ์๋ฒ์ฌ์ด๋ ๋ ๋๋ง์ด ๋ถ๊ฐ๋ฅํ ์ ์์
๋ ๋๋ง์ด ํด๋ผ์ด์ธํธ ์ชฝ์์ ์ผ์ด๋จ
์๋ฒ๊ฐ ์์ฒญ์ ๋ฐ๊ณ ํด๋ผ๋ฆฌ์ธํธ์๊ฒ HTML๊ณผ JS ๋ณด๋ด์ฃผ๋ฉด ํด๋ผ์ด์ธํธ๊ฐ ๊ทธ๊ฒ์ ๋ฐ์ ๋ ๋๋ง ์์
Ex. ๋ฐฐ๋ฏผ์์ ์์ ์ฃผ๋ฌธํ์ ๋ ์กฐ๋ฆฌ๋์ด์์ง ์์ ๋ฐํคํธ๋ง ์ค๋ ๊ฒ
๋ ๋๋ง
2์ฐจ์์ ํ์๋ ๋ฌผ์ฒด๋ฅผ 3์ฐจ์์ ํ์๋ ๋ฌผ์ฒด์ฒ๋ผ ๋ณด์ด๊ฒ ํ๋ ๊ฒ
ํ๋ฉด์ด ์๋ก๊ณ ์นจ๋์ด ๋์ง ์๊ณ , ๊ฐ์ ํ๋ฉด์ ๋ฐ์ดํฐ๋ง ๋ฐ๋ !
1. ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฒ๋ก ์์ฒญ ๋ณด๋
์๋ฒ๊ฐ ์นํ์ด์ง์ ๊ณจ๊ฒฉ์ด ๋ ๋จ์ผ ํ์ด์ง + JS๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ๋ณด๋
ํด๋ผ์ด์ธํธ๊ฐ ์นํ์ด์ง ๋ฐ์ผ๋ฉด, ๋ธ๋ผ์ฐ์ ์์ JS ํ์ผ์ด ์นํ์ด์ง๋ฅผ ์์ ํ ๋ ๋๋ง ๋ ํ์ด์ง๋ก ๋ฐ๊ฟ
์น ํ์ด์ง์ ํ์ํ ๋ด์ฉ์ด DB์ ์ ์ฅ๋ ๋ฐ์ดํฐ์ธ ๊ฒฝ์ฐ
API ์์ฒญ์ผ๋ก DB์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ์นํ์ด์ง์ ๋ ๋๋ง
๋ธ๋ผ์ฐ์ ๊ฐ ๋ค๋ฅธ ๊ฒฝ๋ก๋ก ์ด๋ํ ๊ฒฝ์ฐ
CRS๋ SSR๊ณผ ๋ค๋ฅด๊ฒ, ์๋ฒ๊ฐ ์น ํ์ด์ง๋ฅผ ๋ค์ ๋ณด๋ด์ง ์์
๋ธ๋ผ์ฐ์ ๊ฐ ์๋ ์์ฒญํ๋ ๊ฒฝ๋ก์ ๋ฐ๋ผ ํ์ด์ง๋ฅผ ๋ค์ ๋ ๋๋ง
(์์ ์ ๋ฌ๋ฐ์ ํ์ผ๊ณผ ๋์ผํ ํ์ผ)
SEO(๊ฒ์์์ง ์ต์ ํ)๊ฐ ์ฐ์ ์์๊ฐ ์๋ ๊ฒฝ์ฐ
์ฌ์ดํธ์ ํ๋ถํ ์ํธ ์์ฉ์ด ์๋ ๊ฒฝ์ฐ ( ๋ผ์ฐํ ์ด ๋น ๋ฅด๊ธฐ ๋๋ฌธ )
์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ํ๋ ๊ฒฝ์ฐ
Ex. ์์ฝ ์ฌ์ดํธ
โ SPA(Single Page Application)๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉด์ ์ผ๋ถ๋ง ๋ฐ์์จ ๋ฐ์ดํฐ๋ก ๋ณ๊ฒฝํด ์ฃผ๊ธฐ ๋๋ฌธ
๋๋ฆฐ ๋ ๋๋ง ์๋ ( ๋ชจ๋ ๋ ๋๋ง์ ๋ถํ๊ฐ ํด๋ผ์ด์ธํธ ์ชฝ์ ์ง์ค๋๊ธฐ ๋๋ฌธ )
search engine bots ์ ์์ฑ์ด ์์ข์
โ JS๊ฐ ๋ ๋๋งํด์ผ ํ๋ ์ ๋ณด๋ค์ Google ๊ณผ ๊ฐ์ search engine index์ ํฌํจ์ด ์๋ ๊ฐ๋ฅ์ฑ์ด ๋งค์ฐ ๋dma
ํด ๋ง์ ๋ด์ฉ์ด์์ง๋ง ๊ทธ๋๋ ์ ๋๋๋ค
๋ธ๋ก๊ทธ์ ์ ๋ฆฌํ๋ฉด์ ๋จธ๋ฆฟ์์์๋ ํ๋ฆ์ด ๋ง์ด ์กํ ๋๋!
ํ์คํ ์ ๋ฆฌ๋ฅผ ํ๋๊น ์ข๋ค