์๋
! ์ค๋ ์ฐ๋ฆฌ๋ ๋งค์ฐ ํฅ๋ฏธ๋กญ๊ณ ๊ฐ์ฅ ์ค์ํ ๋
ธ๋ ์์ฅ์์ ์์๊ฐ ๋ง์ ์ฃผ์ ์ธ REST์ ๋ํด ๋ฐฐ์ธ ๊ฒ์
๋๋ค.
REST์ ๋ํ ๊ฐ์๋ฅผ ์ธ ๋ถ๋ถ์ผ๋ก ๋๋ ๊ฒ์
๋๋ค.

-
์ฒซ ๋ฒ์งธ ๋ถ๋ถ์์๋ REST์ ์ญ์ฌ๋ฅผ ๋ค๋ฃจ๊ณ REST์ ๊ธฐ๋ฐ์ด ๋๋ ์์น์ ์ค๋ช ํฉ๋๋ค.
-
๋ ๋ฒ์งธ์์๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ํต์ ์ด HTTP ํ๋กํ ์ฝ์ ํตํด ๋ฐ์ํ๋ ๋ฐฉ์์ ๊ณ ๋ คํ ๊ฒ์ ๋๋ค.
-
์ธ ๋ฒ์งธ์์๋ "Postman"์ด๋ผ๋ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ์ฌ ํ ์คํธํ ์์ RESTful ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑํฉ๋๋ค.
- HTTP
- URL ๋ฐ URI
- JSON ๋ฐ (์ฝ๊ฐ์) XML
- ์์กด์ฑ ์ฃผ์
ํํธ 1. REST๋ ๋ฌด์์ ๋๊น?
IT ์ธ๊ณ์์์ ๋ง์ฐฌ๊ฐ์ง๋ก REST๋ ์ฝ์ด์ ๋๋ค. "REpresentational State Transfer" ์์ ํ์๋ฉ๋๋ค . ์ด๊ฒ์ ์ปดํจํฐ ๋คํธ์ํฌ์์ ๋ถ์ฐ ์์คํ ์ ๊ตฌ์ฑ ์์ ๊ฐ์ ์ํธ ์์ฉ์ ์ํ ์ํคํ ์ฒ ์คํ์ผ์ ๋๋ค. ๊ฐ๋จํ ๋งํด REST๋ ์๋ก ๋ค๋ฅธ ์์น์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์์นํ ์ ์๋ ์์คํ ์ ์๋ก ๋ค๋ฅธ ๊ตฌ์ฑ ์์ ๊ฐ์ ์ํธ ์์ฉ(๋ฐ์ดํฐ ๊ตํ) ์คํ์ผ์ ๊ฒฐ์ ํฉ๋๋ค. ์ด ์ํคํ ์ฒ ์คํ์ผ์ ๋ถ์ฐ ์์คํ ์ ์ค๊ณํ ๋ ์ค์ํด์ผ ํ๋ ์ผ๊ด๋ ์ ์ฝ ์กฐ๊ฑด ์งํฉ์ ๋๋ค. ์ด๋ฌํ ์ ์ฝ ์กฐ๊ฑด์ REST์ ๊ธฐ๋ณธ ์์น์ด๋ผ๊ณ ๋ ํฉ๋๋ค. ๋ง์ง ์๊ณ 6 ๊ฐ๋ฟ์ ๋๋ค. ๋์ค์ ์ด์ผ๊ธฐํ๊ฒ ์ต๋๋ค.REST ์์น์ ์ผ๋์ ๋๊ณ ๊ตฌ์ถ๋ ์ ํ๋ฆฌ์ผ์ด์ , ์ฆ REST ์ ์ฝ ์กฐ๊ฑด์ ์๋ฐํ์ง ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ "RESTful"์ด๋ผ๊ณ ํฉ๋๋ค. |
REST์ ์ญ์ฌ
REST๋ผ๋ ์ฉ์ด๋ HTTP ํ๋กํ ์ฝ์ ์ฐฝ์์ ์ค ํ ๋ช ์ธ Roy Fielding์ด ๊ทธ์ ๋ฐ์ฌ ํ์์์ ์๊ฐํ์ต๋๋ค. 2000๋ "์ํคํ ์ฒ ์คํ์ผ ๋ฐ ๋คํธ์ํฌ ๊ธฐ๋ฐ ์ํํธ์จ์ด ์ํคํ ์ฒ ์ค๊ณ"๋ผ๋ ์ ๋ชฉ์ ๋ ผ๋ฌธ. REST๋ผ๋ ์ฉ์ด๋ ์์ง ์ ๋ค๊ณ ํ ์ ์์ง๋ง ๊ทธ๊ฒ์ด ๋ํ๋ด๋ ๊ฐ๋ ์ ์๋ ์์ด๋ ์น์ ํต์ฌ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ฉ์ด์ ์ญ์ฌ์ ๋ํด ๊น์ด ํ๊ณ ๋ค์ง ์์ ๊ฒ์ ๋๋ค. ์ฃผ์ ์์ค์ ๋ํด ์์๋ณด๋ ค๋ฉด Fielding์ ๋ ผ๋ฌธ์ ์ดํด๋ณด์ญ์์ค .REST ์ ์ฝ ์กฐ๊ฑด ๋ฐ ์์น
์์์ ์ค๋ช ํ ๊ฒ์ฒ๋ผ REST๋ ๋ถ์ฐ ์์คํ ์ ๊ตฌ์ฑ ์์๊ฐ ์๋ก ์ํธ ์์ฉํ๋ ๋ฐฉ๋ฒ์ ์ ์ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ด๊ฒ์ ์์ฒญ-์๋ต ํ๋ก์ธ์ค๋ฅผ ํตํด ๋ฐ์ํฉ๋๋ค. ์์ฒญ์ ๋ณด๋ด๋ ๊ตฌ์ฑ ์์๋ฅผ ํด๋ผ์ด์ธํธ๋ผ๊ณ ํ๊ณ ์์ฒญ ์ ์ฒ๋ฆฌํ๊ณ ํด๋ผ์ด์ธํธ์ ์๋ต์ ๋ณด๋ด๋ ๊ตฌ์ฑ ์์๋ฅผ ์๋ฒ๋ผ๊ณ ํฉ๋๋ค .. ์์ฒญ ๋ฐ ์๋ต์ ๋๋ถ๋ถ HTTP ํ๋กํ ์ฝ์ ํตํด ์ ์ก๋ฉ๋๋ค. HTTP๋ HyperText Transfer Protocol์ ์ฝ์์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์๋ฒ๋ ์ผ๋ถ ์น ์์ฉ ํ๋ก๊ทธ๋จ์ ๋๋ค. ํด๋ผ์ด์ธํธ๋ ๊ฑฐ์ ๋ชจ๋ ๊ฒ์ด ๋ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ ๋ชจ๋ฐ์ผ ์ฑ์ ๋๋ค. ๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ค์ด๋ก๋ํ๊ธฐ ์ํด ์น ํ์ด์ง์์ ์๋ฒ๋ก ์์ฒญ์ ๋ณด๋ด๋ ๋ธ๋ผ์ฐ์ ์ ๋๋ค. Application A๋ Application B์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ A๋ B์ ๋ํ ํด๋ผ์ด์ธํธ์ด๊ณ B๋ A์ ๋ํ ์๋ฒ์ ๋๋ค. ๋์์ A๋ B, C, D ๋ฑ์ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์ ํ๋ฆฌ์ผ์ด์ A๋ ์๋ฒ์ด์ ํด๋ผ์ด์ธํธ์ ๋๋ค. ๋ชจ๋ ๊ฒ์ ์ํฉ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ํ ๊ฐ์ง๋ ํ์คํฉ๋๋ค. ์์ฒญ์ ๋ณด๋ด๋ ๊ตฌ์ฑ ์์๋ ํด๋ผ์ด์ธํธ์ ๋๋ค. ์์ฒญ์ ์์ , ์ฒ๋ฆฌ ๋ฐ ์๋ตํ๋ ๊ตฌ์ฑ ์์๊ฐ ์๋ฒ์ ๋๋ค. ํ์ง๋ง, ๊ตฌ์ฑ ์์๊ฐ ์์ฒญ-์๋ต ํ๋ก์ธ์ค๋ฅผ ํตํด ํต์ ํ๋ ๋ชจ๋ ์์คํ ์ด RESTful ์์คํ ์ธ ๊ฒ์ ์๋๋๋ค. ์์คํ ์ด RESTful๋ก ๊ฐ์ฃผ๋๋ ค๋ฉด 6๊ฐ์ REST ์ ์ฝ ์กฐ๊ฑด์ ์ค์ํด์ผ ํฉ๋๋ค.1. ํด๋ผ์ด์ธํธ-์๋ฒ ์ํคํ ์ฒ
์ด ์ ์ฝ ์กฐ๊ฑด์ ๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ์ ๊ดํ ๊ฒ์ ๋๋ค. ํด๋ผ์ด์ธํธ ์ธํฐํ์ด์ค์ ์๊ตฌ ์ฌํญ๊ณผ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์๋ฒ์ ์๊ตฌ ์ฌํญ์ ๊ตฌ๋ถํ ํ์๊ฐ ์์ต๋๋ค. ์ด ์ ์ฝ ์กฐ๊ฑด์ ํด๋ผ์ด์ธํธ ์ฝ๋๋ฅผ ๋ค๋ฅธ ํ๋ซํผ์ ๋ ์ฝ๊ฒ ์ด์ํ ์ ์๋๋ก ํ๋ฉฐ ์๋ฒ ์ธก์ ๋จ์ํํ๋ฉด ์์คํ ์ ํ์ฅ์ฑ์ด ํฅ์๋ฉ๋๋ค. "ํด๋ผ์ด์ธํธ"์ "์๋ฒ"๋ฅผ ๊ตฌ๋ถํ๋ฉด ์๋ก ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ๋ฐํ ์ ์์ต๋๋ค.2. ๋ฌด๊ตญ์ ์
RESTful ์ํคํ ์ฒ๋ ๋ค์ ์กฐ๊ฑด์ ์ถฉ์กฑํด์ผ ํฉ๋๋ค. ์์ฒญ ์ฌ์ด์ ๊ธฐ๊ฐ ๋์ ์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ์ํ์ ๋ํ ์ ๋ณด๋ฅผ ์ ์ฅํด์๋ ์ ๋๋ฉฐ ๊ทธ ๋ฐ๋์ ๊ฒฝ์ฐ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ํด๋ผ์ด์ธํธ์ ๋ชจ๋ ์์ฒญ์ ์์ฒญ์ ์๋ฃํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ์๋ฒ์ ์ ๊ณตํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌ์ฑ๋์ด์ผ ํฉ๋๋ค. ๋ฐ๋ผ์ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๋ชจ๋ ์ด์ ๋ฉ์์ง์ ์์กดํ์ง ์๊ณ ์์ ๋ ๋ฉ์์ง๋ฅผ "์ดํด"ํ ์ ์์ต๋๋ค.3. ์บ์ ๊ฐ๋ฅ
ํด๋ผ์ด์ธํธ๋ ์๋ฒ ์๋ต์ ์บ์ํ ์ ์์ต๋๋ค. ํด๋ผ์ด์ธํธ๊ฐ ํ์ ์์ฒญ์ ๋ํ ์๋ต์ผ๋ก ์ค๋๋๊ฑฐ๋ ์๋ชป๋ ๋ฐ์ดํฐ๋ฅผ ์์ ํ์ง ์๋๋ก ๋ช ์์ ์ผ๋ก ๋๋ ์์์ ์ผ๋ก ์บ์๋จ ๋๋ ์บ์๋์ง ์์์ผ๋ก ์ง์ ๋์ด์ผ ํฉ๋๋ค. ์ฌ๋ฐ๋ฅธ ์บ์ฑ์ ์ผ๋ถ ํด๋ผ์ด์ธํธ-์๋ฒ ์ํธ ์์ฉ์ ์์ ํ ๋๋ ๋ถ๋ถ์ ์ผ๋ก ์ ๊ฑฐํ์ฌ ์์คํ ์ฑ๋ฅ๊ณผ ํ์ฅ์ฑ์ ๋์ฑ ํฅ์์ํต๋๋ค.4. ํต์ผ๋ ์ธํฐํ์ด์ค
RESTful ์ํคํ ์ฒ์ ๊ธฐ๋ณธ ์๊ตฌ ์ฌํญ์๋ ํต์ผ๋๊ณ ๊ท ์ผํ ์ธํฐํ์ด์ค๊ฐ ํฌํจ๋ฉ๋๋ค. ํด๋ผ์ด์ธํธ๋ ์์ฒญ์ ๋ณด๋ผ ๋ ์ฌ์ฉํด์ผ ํ๋ ํ์๊ณผ ์ฃผ์๋ฅผ ํญ์ ์ดํดํด์ผ ํ๋ฉฐ, ์๋ฒ๋ ํด๋ผ์ด์ธํธ ์์ฒญ์ ์๋ตํ ๋ ์ฌ์ฉํด์ผ ํ๋ ํ์์ ์ดํดํด์ผ ํฉ๋๋ค. ๋ฌด์์, ์ด๋์, ์ด๋ค ํ์์ผ๋ก, ์ด๋ป๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ๊ฒ์ธ์ง๋ฅผ ์ค๋ช ํ๋ ์ด ์ผ๊ด๋ ํด๋ผ์ด์ธํธ-์๋ฒ ์ํธ ์์ฉ์ด ํตํฉ ์ธํฐํ์ด์ค์ ๋๋ค.5. ๋ ์ด์ด
๊ณ์ธต์ด๋ ๋คํธ์ํฌ์ ๊ณ์ธต์ ๊ตฌ์กฐ๋ฅผ ์๋ฏธํฉ๋๋ค. ๋๋ก๋ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์ง์ ํต์ ํ ์ ์๊ณ ๋๋ก๋ ์ค๊ฐ ๋ ธ๋์๋ง ํต์ ํ ์๋ ์์ต๋๋ค. ์ค๊ฐ ์๋ฒ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ก๋ ๋ฐธ๋ฐ์ฑ ๋ฐ ๋ถ์ฐ ์บ์ฑ ๋๋ถ์ ํ์ฅ์ฑ์ ๋์ผ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ณด๊ฒ ์ต๋๋ค. ์ ์ธ๊ณ์ ์ผ๋ก ์ธ๊ธฐ ์๋ ๋ชจ๋ฐ์ผ ์ฑ์ ์์ํด ๋ณด์ธ์. ์ฑ์ ํ์์ ์ธ ๋ถ๋ถ์ ์ฌ์ง์ ๋ก๋ํ๋ ๊ฒ์ ๋๋ค. ์ฌ์ฉ์๊ฐ ์๋ฐฑ๋ง ๋ช ์ ๋ฌํ๋ฏ๋ก ๋จ์ผ ์๋ฒ๊ฐ ์ด๋ฌํ ๋ฌด๊ฑฐ์ด ๋ก๋๋ฅผ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ์์คํ ์ ๊ณ์ธต์ผ๋ก ๋ถ๋ฆฌํ๋ฉด ์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๋ค. ํด๋ผ์ด์ธํธ๊ฐ ์ค๊ฐ ๋ ธ๋์ ์ฌ์ง์ ์์ฒญํ๋ฉด ์ค๊ฐ ๋ ธ๋๋ ํ์ฌ ๋ถํ๊ฐ ๊ฐ์ฅ ์ ์ ์๋ฒ์ ์ฌ์ง์ ์์ฒญํ๊ณ ํด๋ผ์ด์ธํธ์๊ฒ ์ฌ์ง์ ๋ฐํํ๋ค. ๊ณ์ธต ๊ตฌ์กฐ์ ๊ฐ ์์ค์์ ์บ์ฑ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ ์ฉ๋๋ฉด6. ์ฃผ๋ฌธํ ์ฝ๋(์ ํ ์ฌํญ)
์ด ์ ์ฝ ์กฐ๊ฑด์ ํด๋ผ์ด์ธํธ๊ฐ ์ ํ๋ฆฟ์ด๋ ์คํฌ๋ฆฝํธ์ ํํ๋ก ์๋ฒ์์ ์ฝ๋๋ฅผ ๋ค์ด๋ก๋ํ์ฌ ๊ธฐ๋ฅ์ ํ์ฅํ ์ ์์์ ์๋ฏธํฉ๋๋ค.RESTful ์ํคํ ์ฒ์ ์ฅ์
์์ ์ธ๊ธํ ๋ชจ๋ ์ ์ฝ ์กฐ๊ฑด์ ์ค์ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์๊ณผ ๊ฐ์ ์ด์ ์ด ์์ต๋๋ค. ์์ ์ฑ(์์ค๋ ์ ์๋ ํด๋ผ์ด์ธํธ ์ํ๋ฅผ ์ ์ฅํ ํ์๊ฐ ์์)- ์ฑ๋ฅ(์บ์ ์ฌ์ฉ์ผ๋ก ์ธํ)
- ํ์ฅ์ฑ
- ํฌ๋ช ํ ์ปค๋ฎค๋์ผ์ด์
- ๊ฐ๋จํ ์ธํฐํ์ด์ค
- ํด๋์ฑ
- ์ฝ๊ฒ ๋ณ๊ฒฝํ๋ ๋ฅ๋ ฅ
- ์๋ก์ด ์๊ตฌ ์ฌํญ์ ๋ง๊ฒ ์งํํ๊ณ ์ ์ํ๋ ๋ฅ๋ ฅ
GO TO FULL VERSION