HTTP๋?
HTTP(HyperText Transfer Protocol)๋ ์น์์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํ ํ๋กํ ์ฝ๋ก ์น ๋ฌธ์๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํด ์ฌ์ฉํ ์ ๋ ์๊ณ , ๋ชจ๋ฐ์ผ, ๊ฒ์ ๊ฐ๋ฐ์์๋ ๋ค์ํ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ์ด ๋๋ค.
ํด๋ผ์ด์ธํธ๋ ์์ฒญํ ๋ ๋ชฉ์ ์ ๋ฐ๋ผ ์ ์ ํ HTTP ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
|
HTTP ๋ฉ์๋
|
๋ด์ฉ
|
์ฌ์ฉ ์์
|
CRUD
|
|
GET
|
๋ฐ์ดํฐ ์กฐํ ์์ฒญ
|
ํน์ ํ์ด์ง ์ ์, ์ ๋ณด ๊ฒ์
|
Read
|
|
POST
|
๋ฐ์ดํฐ ์์ฑ ์์ฒญ
|
ํ์๊ฐ์
, ๊ธ์ฐ๊ธฐ
|
Create
|
|
PUT
|
๋ฐ์ดํฐ ์์ ์์ฒญ
|
ํ์ ์ ๋ณด ์์ , ๊ธ์์
|
Update
|
|
DELETE
|
๋ฐ์ดํฐ ์ญ์ ์์ฒญ
|
ํ์ ์ ๋ณด ์ญ์ , ๊ธ์ญ์
|
Delete
|
HTTP๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ํ๋ฅผ ์ ์ฅํ์ง ์๋๋ค. ์ด๋ง์ ํด๋ผ์ด์ธํธ์์ HTTP๋ก ์๋ฒ์ ์ฐ๊ฒฐํ๋ค ์๋ต์ ๋ฐ์ผ๋ฉด ์ฐ๊ฒฐ์ ๋์ด๋ฒ๋ฆฐ๋ค. ์ด๋ก ์ธํด ์๋ฒ์ ์ฅ์์๋ ์ ์ ์ ์ง์ ๋ํ ์๊ตฌ๊ฐ ์ ์ด, ๋ถํน์ ๋ค์๋ฅผ ๋์์ผ๋ก ํ๋ ์๋น์ค์ ์ ํฉํ๋ค.
์์ ๊ฐ์ด ๋ฉ์๋๋ฅผ ์ด์ฉํ๋ค๋ณด๋ฉด REST API๋ ๊ฐ์ด ์ฐ๊ฒฐ๋์ ์ด์ผ๊ธฐํด๋ณด๋ฉด ๋ ์ข์๊ฑฐ ๊ฐ๋ค.
REST API๋ (Representational State Transfer) ๋ก ์น ์๋น์ค๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํ ์ํคํ ์ฒ ์คํ์ผ์ด๋ค.
api๋ฅผ ์ฌ์ฉํ๋๋ฐ ๊ฐ๋ฐ์๋ค๊ฐ์ ์์ฌ์ํต์ ์คํด์์ด ์ฐ๊ธฐ์ํ ๊ฐ๋ฐ ๋ฐฉ์์ด๋ค.
- ๋ง ๊ทธ๋๋ก ํน์ ํ ์์(resource)์ ๋ํ์ฌ, ์์์ ์ํ์ ๋ํ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ฐ๋ฐ ๋ฐฉ์
๊ฐ ๋ฉ์๋๋ง๋ค์ ๊ธฐ๋ฅ์ด ์์ง๋ง POST ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ ๋ฐ์ดํฐ ์์ฑ์ด ์๋ ์์ ์ผ๋ก ์ฐ๊ฑฐ๋ ํ ์๋ ์๋ค๋ณด๋ ์ํตํ๋๋ฐ ์คํด๊ฐ ๋ฐ์ํ ์ ์๋ค.
REST๋ ๋ฆฌ์์ค(์์)๋ฅผ ๊ณ ์ ํ URI๋ก ํํํ๊ณ , HTTP๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌ์์ค์ ๋ํ ์์ ์ ์ํํ๋ค.
REST์ ๊ตฌ์ฑ ์์
|
์์(resource)
|
URI๋ฅผ ์ด์ฉ |
| ํ์(verb) |
HTTP ๋ฉ์๋๋ฅผ ์ด์ฉ
|
| ํํ(representation) | ํ์ด๋ก๋(payload)์ด์ฉ |