[cs] ์น ๊ฐ๋ฐ ๊ธฐ๋ณธ ๊ฐ๋
์น ๊ฐ๋ฐ ๊ธฐ๋ณธ ๊ฐ๋
์น ๊ณต๋ถํ๋ฉด์ ์ ๋ฆฌํ ๋ด์ฉ ์ ๋๋ค !
์ค๋ฅ๊ฐ ์๋ค๋ฉด ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์ธ์ :)
1. ์น
2. URL
3. HTTP
4. JSON, Content-type ํค๋
5. Web API, REST API
6. Request(GET, POST, PUT, DELETE)
7. Response(status code)
1. ์น
World Wide Web์ผ๋ก ์ ์ธ๊ณ์ ์ธ ์ฐ๊ฒฐ๋ง์ด๋ค.
ํด๋ผ์ด์ธํธ -> ์๋ฒ๋ก ์์ฒญ์ ๋ณด๋ด๊ณ , ์๋ฒ -> ํด๋ผ์ด์ธํธ ์๋ตํ๋ ๊ตฌ์กฐ์ด๋ค.
2. URL
Uniform Resource Locator์ผ๋ก ๊ท๊ฒฉํ๋ ๋ฆฌ์์ค ๊ฒ์์์ด๊ณ , ์น์ ์กด์ฌํ๋ ๋ฐ์ดํฐ ์ค ํน์ ๋ฐ์ดํฐ๋ฅผ ๋ํ๋ด๋ ๋ฌธ์์ด์ด๋ค.
https:// + www.naver.com + /member/login + ?page=2 ํํ๋ก ์ฌ์ฉ๋๋ค.
- https
์คํด์ ๋ํ๋ด๋ ๋ถ๋ถ์ด๋ค.
ํ๋กํ ์ฝ์ ์ง์ ํ๋ ๋ถ๋ถ์ด๋ค.
ํ๋กํ ์ฝ์ ํต์ ์ ํ๋ ๋ ์ฃผ์ฒด๊ฐ ์ง์ผ์ผ ํ๋ ํต์ ๊ท์ฝ์ด๋ค.
ํน์ ํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ๋ http๋ผ๋ ํ๋กํ ์ฝ์ ์งํค๊ฒ ๋ค๋ ์๋ฏธ์ด๋ค.
- www.naver.com
ํธ์คํธ(๋๋ฉ์ธ)์ ๋ํ๋ด๋ ๋ถ๋ถ์ด๋ค.
์ ์ธ๊ณ์ ๋ง์ ์๋ฒ ์ค ํ๋์ ์๋ฒ๋ฅผ ํน์ ํ๋ ๋ถ๋ถ์ด๋ค.
- /member/login
๊ฒฝ๋ก๋ฅผ ๋ํ๋ด๋ ๋ถ๋ถ์ด๋ค.
์๋ฒ ์์ ์กด์ฌํ๋ ๋ฐ์ดํฐ์์ ํน์ ๋ฐ์ดํฐ๋ฅผ ๋ํ๋ด๊ธฐ ์ํด์ ์ฌ์ฉํ๋ ๋ถ๋ถ์ด๋ค.
- ?page=2
์ฟผ๋ฆฌ๋ฅผ ๋ํ๋ด๋ ๋ถ๋ถ์ด๋ค.
์ฟผ๋ฆฌ๋ ์กด์ฌํ ์๋ ์๊ณ ์์ ๋๋ ์์ผ๋ฉฐ ๋ฐ์ดํฐ์ ๊ดํ ์ธ๋ถ์ ์ธ ์๊ตฌ์ฌํญ์ ๋ํ๋ธ๋ค.
ํด๋ผ์ด์ธํธ(html) ๋ถ๋ถ์์ ์ฒ๋ฆฌํ๋ค.
3. HTTP
HTTP๋ ํ๋กํ ์ฝ์ ํ ์ข ๋ฅ์ด๋ค.
ํ์ดํผํ ์คํธ๋ฅผ ์น ๋ธ๋ผ์ฐ์ ์ ์๋ฒ ์ฌ์ด์์ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํ ํ๋กํ ์ฝ์ด๋ค.
์์ฆ์๋ ์ด๋ฏธ์ง, ๋์์ ๋ฑ ๋ค์ํ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ค.
https๋ http์ ๋ณด์์ฑ์ด ๋ํด์ง ํ๋กํ ์ฝ์ผ๋ก http๋ณด๋ค ๋ง์ด ์ฌ์ฉํ๋ค.
4. JSON, Content-type ํค๋
- JSON
์๋ฒ๊ฐ ๋ณด๋ด์ฃผ๋ ์๋ต ํฌ๋งท์ด๋ค.
์ด๋ ํ ์ ๋ณด๋ฅผ ๋ํ๋ด๋ ๋ฐ์ดํฐ๋ก ์๋ตํ ๋ JSON ํํ๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฌธ๋ฒ๊ณผ ๋น์ทํ๋ค.
ํค-๊ฐ ์์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์๋ณํ๊ณ ๊ฒ์ํ ์ ์๋ค.
JSON ๋ฐ์ดํฐ๋ String ํ์ ์ด๊ณ , JSON.parse(JSON๋ฐ์ดํฐ)๋ฅผ ํตํด ์ญ์ง๋ ฌํ๋ฅผ ํ์ฌ ๊ฐ์ฒด๋ก ๋ณํํด์ ์ฌ์ฉํ ์ ์๋ค.
String ํ์ ์ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด๋ฅผ JSON ๋ฐ์ดํฐ๋ก ๋ณํ(์ง๋ ฌํ)ํ ๋๋ JSON.stringify(๊ฐ์ฒด์ด๋ฆ)์ผ๋ก ๋ณํํ ์ ์๋ค.
- Content-type ํค๋
request ๋๋ response์ ๋ค์ด์๋ body์ ๋ฐ์ดํฐ๊ฐ ์ด๋ค ํ์ ์ธ์ง ๋ํ๋ธ๋ค.
Context-type ํค๋ ๊ฐ์ ์ฃผ ํ์ /์๋ธ ํ์ ํ์์ผ๋ก ๋ํ๋ธ๋ค.
๋ง์ฝ ์ผ๋ฐ ํ ์คํธ๋ฅผ ๋ณด๋ธ๋ค๋ฉด text/plain, css ์ฝ๋๋ฉด text/css๋ก ๋ํ๋ผ ์ ์๋ค.
JSON ๋ฐ์ดํฐ๋ application/json์ผ๋ก ๋ํ๋๋ค.
5. Web API, REST API
- Web API
Web API๋ ์ด๋ค request๊ฐ ์ผ์ด๋ฌ์ ๋, ๋ฌด์จ response๊ฐ ์ค๋์ง์ ๋ํด ์ ํด์ง ๊ท๊ฒฉ์ด๋ค.
์ด๋ฌํ API๋ฅผ ์ค๊ณํ๋ ๊ฒ์ด Web API ์ค๊ณ์ด๋ค.
- REST API
Web API๋ฅผ ์ค๊ณํ๊ธฐ ์ํ ๊ฐ์ด๋๋ผ์ธ์ด๋ค.
REST ๊ตฌ์กฐ๋ client-server, stateless, cache, uniform interface, layered system, code on demand๋ก ์ด๋ฃจ์ด์ ธ์๋ค.
์์ 6๊ฐ์ง ๊ฐ์ด๋๋ผ์ธ์ ์ค์ํ์ฌ ๋ง๋ ์ดํ๋ฆฌ์ผ์ด์ ์ด RESTful ์๋น์ค์ด๋ค.
6. Request(GET, POST, PUT, DELETE)
request์ ์ข ๋ฅ์๋ GET, POST, PUT, DELETE๊ฐ ์๋ค.
request์๋ head์ body๊ฐ ์กด์ฌํ๋ค.
- head
๋ฉ์๋์ ๋ํ ์ ๋ณด๋ฅผ ํฌํจํ์ฌ ์ฌ๋ฌ ์ ๋ณด๊ฐ ์๋ค.
ํค๋ ์์ ๋ค์ด๊ฐ๋ ๊ฐ๊ฐ์ ์ ๋ณด๋ฅผ ํค๋๋ผ๊ณ ํ๋ค.
- body
์ค์ ๋ฐ์ดํฐ๋ฅผ ๋ด๋ ๋ถ๋ถ(JSON ๋ฐ์ดํฐ)
POST, PUT์ ํ ๋ ํ์ํ๋ค.
7. Response(status code)
status code๋ head์ ๋ด๊ฒจ์ค๋ ์ํ ์ฝ๋์ด๋ค.
์์ฒญ์ ๋ํ ์๋ต์ ์ํ๋ฅผ ์ฝ๋๋ก ํํํ๊ณ , 100๋ฒ๋~500๋ฒ๋๊น์ง ์กด์ฌํ๋ค.
- 100๋ฒ๋
์๋ฒ->ํด๋ผ์ด์ธํธ ์ ๋ณด์ฑ ์๋ต
- 200๋ฒ๋
ํด๋ผ์ด์ธํธ์ ์์ฒญ์ด ์ฑ๊ณต
- 300๋ฒ๋
ํด๋ผ์ด์ธํธ์ ์์ฒญ์ด ์์ง ์ฒ๋ฆฌ๋์ง ์๊ณ , ์ฒ๋ฆฌ๋ฅผ ์ํ๋ฉด ์ถ๊ฐ ์์ ์ด ํ์ํจ์ ์๋ฏธ
- 400๋ฒ๋
ํด๋ผ์ด์ธํธ์์ ๋ฌธ์ ๊ฐ ์์
- 500๋ฒ๋
์๋ฒ์์ ๋ฌธ์ ๊ฐ ์์
๋ค์ ํฌ์คํ ์์ ๋ง๋์ !