๐ก ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ฅผ ์ค๋นํ๋ค๋ณด๋ฉด REST๋ RESTful์ด๋ ๋จ์ด๋ฅผ ์์ฃผ ๋ค์ด๋ดค์ ๊ฒ์ด๋ค. ๋ฐ๋ผ์ REST๊ฐ ๋ฌด์์ด๊ณ ์ด๋ป๊ฒ ์ฐ์ด๋์ง ์์๋ณด๊ณ ์ ํ๋ค.
ํ๋ง๋๋ก?
- Representational State Transfer
(ํํ ์ํ๋ฅผ ๋ณ๊ฒฝ)
- REST๋ ์น์์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ณ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ ์ํ ์ธํฐํ์ด์ค
๊ธฐ๋ฅ
- Layered System(๊ณ์ธต ๊ตฌ์กฐ)
- REST Server๋ ๋ค์ค ๊ณ์ธต์ผ๋ก ๊ตฌ์ฑ ๊ฐ๋ฅ
- ๋ณด์, ๋ก๋ ๋ฐธ๋ฐ์ฑ, ์ํธํ ๋ฑ์ ์ํ ๊ณ์ธต์ ์ถ๊ฐํ์ฌ ๊ตฌ์กฐ ๋ณ๊ฒฝ ๊ฐ๋ฅ
- Proxy, Gateway์ ๊ฐ์ ๋คํธ์ํฌ ๊ธฐ๋ฐ์ ์ค๊ฐ๋งค์ฒด ์ฌ์ฉ ๊ฐ๋ฅ
- Uniform Interface(์ธํฐํ์ด์ค ์ผ๊ด์ฑ)
- HTTP ํ์ค ํ๋กํ ์ฝ์ ๋ฐ๋ฅด๋ ๋ชจ๋ ํ๋ซํผ์์ ์ฌ์ฉ ๊ฐ๋ฅ, Loosely Coupling โ ํน์ ์ธ์ด๋ ๊ธฐ์ ์ ์ข
์ X
- Self-Descriptiveness(์์ฒด ํํ)
- ์์ฒญ ๋ฉ์์ง๋ง ๋ณด๊ณ ๋ ์ฝ๊ฒ ์ดํดํ ์ ์๋ ์์ฒด ํํ ๊ตฌ์กฐ
๋์์ธ ๊ฐ์ด๋
- URI๋ ์ ๋ณด์ ์์์ ํํํด์ผ ํ๋ค.
- ์์์ ๋ํ ํ์๋ HTTP Method(GET, POST, PUT, PATCH, DELETE)๋ก ํํํ๋ค.
- ํ์(Method)๋ URI์ ํฌํจํ์ง ์๋๋ค.
์ค๊ณ ๊ท์น
- URI๋ ๋ช
์ฌ๋ฅผ ์ฌ์ฉ(๋ฆฌ์์ค๋ช
์ ๋์ฌ๊ฐ ์๋ ๋ช
์ฌ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.)
- /๋ก ๊ณ์ธต ๊ด๊ณ ํํํ๋ค.
- URI ๋ง์ง๋ง ๋ฌธ์๋ก /๋ฅผ ํฌํจํ์ง ์๋๋ค.
- _๋ฅผ ์ฌ์ฉํ์ง ์๊ณ , -์ ์ฌ์ฉํ๋ค.
- URI๋ ์๋ฌธ์๋ก๋ง ๊ตฌ์ฑ
- HTTP ์๋ต ์ํ ์ฝ๋ ์ฌ์ฉ
- ํ์ผ ํ์ฅ์๋ URI์ ํฌํจํ์ง ์์
RESTful API
REST์ ์๋ฆฌ๋ฅผ ์ ๋ฐ๋ฅด๋ ์์คํ
๊ฐ๋
- REST ์ํคํ
์ฒ๋ฅผ ๊ตฌํํ๋ ์น ์๋น์ค๋ฅผ ๋ํ๋ด๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์ฉ์ด
- REST๋ฅผ REST ๋ต๊ฒ ์ฐ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก, ๋๊ตฐ๊ฐ๊ฐ ๊ณต์์ ์ผ๋ก ๋ฐํํ ๊ฒ์ด ์๋
[์ฐธ๊ณ ]
http://www.incodom.kr/REST
https://dev-coco.tistory.com/97
https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html