Computer Science/๐ก Network
[๋คํธ์ํฌ] REST, REST API, RESTful ์์๋ณด๊ธฐ
REST ์์์ ์ด๋ฆ์ผ๋ก ๊ตฌ๋ถํ์ฌ ํด๋น ์์์ ์ํ ๋ฐ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๋ชจ๋ ๊ฒ์ ์๋ฏธ ์น์ ๊ธฐ์กด ๊ธฐ์ ๊ณผ HTTP ํ๋กํ ์ฝ์ ํ์ฉํ๊ธฐ ๋๋ฌธ์ ์น์ ์ฅ์ ์ ์ต๋ํ ํ์ฉํ ์ ์๋ ์ํคํ ์ฒ ์คํ์ผ ๋คํธ์ํฌ ์์์ Client์ Server ์ฌ์ด์ ํต์ ๋ฐฉ์ HTTP URI๋ฅผ ํตํด ์์์ ๋ช ์ํ๊ณ , HTTP Method(GET, POST, PUT, DELETE)๋ฅผ ํตํด ํด๋น ์์์ ๋ํ CRUD๋ฅผ ์ ์ฉํ๋ ๊ฒ REST ๊ตฌ์ฑ ์์ ์์(Resource) URI๋ก ํ์ ๋ชจ๋ ์์์ ๋ํ ๊ณ ์ ID(URI)๊ฐ ์กด์ฌํ๊ณ , ์ด ์์์ Server์ ์กด์ฌ Client๋ URI๋ฅผ ์ด์ฉํด์ ์์์ ์ง์ ํ๊ณ ํด๋น ์์์ ์ํ(์ ๋ณด)์ ๋ํ ์กฐ์์ Server์ ์์ฒญ ํ์(Verb) HTTP ํ๋กํ ์ฝ์ Method ์ฌ์ฉ ํํ..
[๋คํธ์ํฌ] ์ฟ ํค(Cookie)์ ์ธ์ (Session) ํน์ง, ์ฐจ์ด
HTTP ํ๋กํ ์ฝ์ ๋น์ฐ๊ฒฐ ์งํฅ์ผ๋ก ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฐ๋ผ ์๋ต์ ๋ณด๋ด์ฃผ๋ฉด ๋ฐ๋ก ์ฐ๊ฒฐ์ ๋๋๋ค. ๋, ์ฐ๊ฒฐ์ ๋๋ ์๊ฐ ํด๋ผ์ด์ธํธ์ ์๋ฒ์ ํต์ ์ด ์ข ๋ฃ๋๋ฉฐ ์ํ ์ ๋ณด๋ฅผ ์ ์งํ์ง ์๋๋ค. ์ด์ ๊ฐ์ ํน์ฑ์ผ๋ก HTTP ํ๋กํ ์ฝ์ ๋ชจ๋ ์์ฒญ ๊ฐ์ ์์กด ๊ด๊ณ๊ฐ ์์ด ํ์ฌ ์ ์ํ ์ฌ์ฉ์๊ฐ ์ด์ ์ ์ ์ํ ์ฌ์ฉ์์ ๊ฐ์ ์ฌ์ฉ์์ธ์ง ํ์ธํ์ง ๋ชปํ๋ค. ์ฆ, ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ํต์ ํ ๋๋ง๋ค ์๋กญ๊ฒ ์ฐ๊ฒฐํด์ผ ํ๋ฉฐ ํด๋ผ์ด์ธํธ๋ ๋งค ์์ฒญ๋ง๋ค ์ธ์ฆ ๊ณผ์ ์ ๊ฑฐ์ณ์ผ ํ๋ค. ๋ฐ๋ผ์, HTTP ํ๋กํ ์ฝ์์ ์ด์ ์์ฒญ๊ณผ ํ์ฌ ์์ฒญ์ด ๊ฐ์ ์ฌ์ฉ์์ ์์ฒญ์ธ์ง ์๊ฒ๋๋ ์ํ ์ ์ง๋ฅผ ์ํด ์ฟ ํค(Cookie)์ ์ธ์ (Session)์ ์ฌ์ฉํ๋ค. ์ฟ ํค์ ์ธ์ ์ ๋ํ ํน์ง๊ณผ ์ฐจ์ด๋ ๋ค์๊ณผ ๊ฐ๋ค. ์ฟ ํค(Cookie) ๊ฐ๋ ํด๋ผ์ด์ธํธ ๋ก์ปฌ ์ค..
[๋คํธ์ํฌ] GET ๋ฉ์๋์ POST ๋ฉ์๋ ํน์ง, ์ฐจ์ด
GET๊ณผ POST๋ HTTP ํ๋กํ ์ฝ์ ์ด์ฉํด ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ๋ ์ฌ์ฉ๋๋ ๋ฐฉ์์ด๋ค. ๊ฐ๊ฐ GET๊ณผ POST ๋ฉ์๋์ ํน์ง ๋ฐ ์ฐจ์ด๋ ๋ค์๊ณผ ๊ฐ๋ค. GET ๋ฉ์๋ ๊ฐ๋ ์ ๋ณด ์กฐํ๋ฅผ ์ํ ๋ฉ์๋ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด ์ฌ์ฉ ๊ฐ์ ธ์ค๋ ๊ฒ (Select) ์ฌ์ฉ ๋ฐฉ๋ฒ URL ๋์ '?'๋ฅผ ํฌํจํด key=value ํ์์ ์ฟผ๋ฆฌ์คํธ๋ง(Query String)๋ฅผ ๋ถํ ์๋ฒ์ ์ ์ก ์์ฒญ ์ ๋ณด์ธ ์ฟผ๋ฆฌ์คํธ๋ง(Query String)์ด ์ฌ๋ฌ ๊ฐ์ผ ๊ฒฝ์ฐ '&'๋ก ๊ตฌ๋ถ ex) www.example.com?name1=value1&name2=value2 ํน์ง URL์ ์ฟผ๋ฆฌ์คํธ๋ง(๋ฐ์ดํฐ)๋ฅผ ๋ถํ ์ ์ก ๋ฐ์ดํฐ๋ฅผ ํค๋(Header)์ ํฌํจํ์ฌ ์ ์ก HTTP ํจํท์ body๋ ๋น์ด์๋ ์ํ๋ก ์ ์ก bo..
[๋คํธ์ํฌ] HTTP์ HTTPS ํ๋กํ ์ฝ
HTTP (Hyper Text Transfer Protocol) ์น ์์์ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์์ฒญ(request)๊ณผ ์๋ต(response)์ผ๋ก ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ ํ๋กํ ์ฝ TCP์ UDP ์ฌ์ฉ, 80๋ฒ ํฌํธ ์ฌ์ฉ ๋น์ฐ๊ฒฐ(Connectionless) ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ์์ฒญ์ ๋ณด๋ด๊ณ ์๋ฒ๊ฐ ์ ์ ํ ์๋ต์ ํด๋ผ์ด์ธํธ์๊ฒ ๋ณด๋ด๋ฉด ์ฐ๊ฒฐ์ด ๋ฐ๋ก ๋๊น ๊ฐ๋จํ๊ธฐ ๋๋ฌธ์ ์์์ด ์ ๊ฒ ๋ ๋ค๋ ์ฅ์ ๋์ผํ ํด๋ผ์ด์ธํธ์ ๋ชจ๋ ์์ฒญ์ ๋ํด ๋งค๋ฒ ์๋ก์ด ์ฐ๊ฒฐ๊ณผ ํด์ ์ ๊ณผ์ ์ ๊ฑฐ์ณ์ผํด ์ค๋ฒํค๋๊ฐ ๋ฐ์ํ๋ค๋ ๋จ์ ๋ฌด์ํ(Stateless) ์ฐ๊ฒฐ์ ๋๋ ์๊ฐ ํด๋ผ์ด์ธํธ์ ์๋ฒ์ ํต์ ์ ๋๊ธฐ๋ฉฐ ์ํ ์ ๋ณด๋ฅผ ์ ์งํ์ง ์์ ์๋ฒ๋ ํด๋ผ์ด์ธํธ๋ฅผ ์๋ณํ ์ ์์ด ๋งค๋ฒ ์ธ์ฆ ๊ณผ์ ํ์ ๋จ๋ฐฉํฅ์ฑ ํด๋ผ์ด์ธํธ์ ์์ฒญ ํ ๊ฐ์ ๋ํด ํ..
[๋คํธ์ํฌ] TCP์ 3-way handshake์ 4-way handshake
3-way handshake TCP ํต์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ์ํด ๋คํธ์ํฌ ์ฐ๊ฒฐ์ ์ค์ ํ๋ ๊ณผ์ ์ ์ธก ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ค๋น๊ฐ ๋์ด์์์ ๋ณด์ฅํ๊ธฐ ์ํด ์ฌ์ ์ ์ธ์ ์ ์๋ฆฝํจ ์ค์ ๋ก ๋ฐ์ดํฐ ์ ๋ฌ์ด ์์๋๊ธฐ ์ ์ ์์ ์ธก์ด ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ์ค๋น๊ฐ ๋์ด ์๋ค๋ ๊ฒ์ ์ ์ ์๋๋ก ํจ 3-way hanshaking ๊ณผ์ * Host A(=ํด๋ผ์ด์ธํธ), Host B(=์๋ฒ) ํต์ Host A๋ Host B์๊ฒ ์ ์์ ์์ฒญํ๋ SYN ํจํท ์ ์ก ์ก์ ์๊ฐ ์ต์ด๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋ Sequence Number๋ ์์์ ์ซ์๋ก ์ง์ ํ๊ณ , SYN ํ๋๊ทธ ๋นํธ๋ฅผ 1๋ก ์ค์ ํ ์ธ๊ทธ๋จผํธ ์ ์ก ํฌํธ ์ํ Host A: CLOSED / Host B: LISTEN ์ ์ ์์ฒญ์ ๋ฐ์ Host B๋ Host A์๊ฒ ํด๋น ์์ฒญ์ ..
[๋คํธ์ํฌ] TCP์ UDP ํน์ง, ํค๋ ๋ถ์, ๋น๊ต
TCP์ UDP๋ OSI ํ์ค๋ชจ๋ธ๊ณผ TCP/IP ๋ชจ๋ธ์ ์ ์ก๊ณ์ธต(Transports Layer)์์ ์ฌ์ฉ๋๋ ํ๋กํ ์ฝ์ด๋ค. ๋ค์๋งํด, ์ก์ ์์ ์์ ์๋ฅผ ์ฐ๊ฒฐํ์ฌ ๋ฐ์ดํฐ ์ ๋ฌ์ ์ํด ์ฌ์ฉ๋๋ค. TCP์ UDP ๊ฐ๊ฐ์ ๊ฐ๋ ๋ฐ ํน์ง์ ๋ํด ๋ ํ๋กํ ์ฝ์ ๊ณตํต์ ๊ณผ ์ฐจ์ด์ ์ ์์๋ณด์. TCP ๋ฐ์ดํฐ๋ฅผ ๋ฉ์ธ์ง ํํ(์ธ๊ทธ๋จผํธ ๋จ์)๋ก ๋ณด๋ด๊ธฐ ์ํด IP์ ํจ๊ป ์ฌ์ฉ๋๋ ํ๋กํ ์ฝ TCP/IP์์ IP๊ฐ ๋ฐ์ดํฐ ์ ๋ฌ์ ์ฒ๋ฆฌํ๋ค๋ฉด, TCP๋ ํจํท์ ์ถ์ ๋ฐ ๊ด๋ฆฌํจ ์ฐ๊ฒฐํ ์๋น์ค๋ก ํด๋ผ์ด์ธํธ๊ฐ ์ฐ๊ฒฐ ์์ฒญ ์ ์๋ฒ๊ฐ ์ด๋ฅผ ์๋ฝํด์ผ 1๋1 ํต์ ๊ฐ๋ฅ (๊ฐ์ํ์ ํจํท ๊ตํ ๋ฐฉ์) 3-way handshaking์ ํตํด ์ฐ๊ฒฐ์ ์ค์ , 4-way handshaking์ ํตํด ์ฐ๊ฒฐ ํด์ ํ๋ฆ ์ ์ด์ ํผ์ก ์ ์ด ์ ๊ณต ํ๋ฆ ์ ์ด: ๋ฐ์ดํฐ..
[๋คํธ์ํฌ] OSI 7๊ณ์ธต ๋ชจ๋ธ๊ณผ TCP/IP 4๊ณ์ธต ๋ชจ๋ธ
OSI 7๊ณ์ธต OSI 7๊ณ์ธต์ ๊ตญ์ ํ์คํ๊ธฐ๊ตฌ(ISO)์์ ๊ฐ๋ฐํ ๋ชจ๋ธ๋ก, ๋คํธ์ํฌ์์ ํต์ ์ด ์ผ์ด๋๋ ๊ณผ์ ์ 7๋จ๊ณ๋ก ๋๋ ๊ฒ์ด๋ค. ๊ณ์ธต๋ณ ๊ธฐ๋ฅ๊ณผ ํต์ ๊ณผ์ ์ ๋จ๊ณ๋ณ๋ก ๋๋์ด ์ฝ๊ฒ ์ ์ ์๊ณ , ํน์ ๊ณ์ธต์ ์ด์์ด ์๊ธด๋ค๋ฉด ํด๋น ๊ณ์ธต๋ง ์์ ํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค. ๊ฐ ๊ณ์ธต๋ณ ์ค๋ช ์ ๋ค์๊ณผ ๊ฐ๋ค. 1. ๋ฌผ๋ฆฌ ๊ณ์ธต (Physical Layer) ์ฃผ๋ก ์ ๊ธฐ์ , ๊ธฐ๊ณ์ , ๊ธฐ๋ฅ์ ์ธ ํน์ฑ์ ์ด์ฉํด ํต์ ์ผ์ด๋ธ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ ์ญํ ์ ์ก ๋จ์๋ ๋นํธ(bit), 1๊ณผ 0์ผ๋ก๋ง ํํ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌ๋ง ํ ๋ฟ ๋ฐ์ดํฐ๊ฐ ๋ฌด์์ธ์ง, ์ด๋ค ์๋ฌ๊ฐ ์๋์ง ๋ฑ์ ์ ํ ๊ณ ๋ คํ์ง ์์ ์) ํต์ ์ผ์ด๋ธ, ๋ฆฌํผํฐ, ํ๋ธ 2. ๋ฐ์ดํฐ ๋งํฌ ๊ณ์ธต (Data Link Layer) ๋ฌผ๋ฆฌ ๊ณ์ธต์ ํตํด ์ก์์ ๋๋ ์ ๋ณด์ ์ค๋ฅ์ ํ๋ฆ์ ๊ด๋ฆฌํ์ฌ..