์๋
ํ์ธ์, ์ค๋ ์ฐ๋ฆฌ๋ ๋
ธ๋ ์์ฅ์์ ๋งค์ฐ ํฅ๋ฏธ๋กญ๊ณ ๊ฐ์ฅ ์ค์ํ ์ฃผ์ ์ธ 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๋ ์ ๊ทธ์ ๋ฐ์ฌ ํ์ ๋ ผ๋ฌธ "Architectural Styles and the Design of Network-based Software Architectures"์์ ๋ง๋ค์ด๋์ต๋๋ค. REST๋ผ๋ ์ฉ์ด๋ ์์ง ์ด๊ธฐ ๋จ๊ณ์ด์ง๋ง ๊ทธ ๊ฐ๋ ์ World Wide Web์ ๊ทผ๊ฐ์ ์ด๋ฃจ๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ด ์ฉ์ด์ ์ ๋์ ๋ํ ์ญ์ฌ๋ฅผ ๊น์ด ๋ค๋ฃจ์ง ์์ ๊ฒ์ ๋๋ค. ์๋ณธ ์์ค๋ฅผ ์์ธํ ์์๋ณด๋ ค๋ฉด Fielding์ ๋ ผ๋ฌธ์ ์ดํด๋ณด์ธ์ .REST ์ ํ์ฌํญ ๋ฐ ์์น
์์์ ์ค๋ช ํ ๊ฒ์ฒ๋ผ REST๋ ๋ถ์ฐ ์์คํ ์ ๊ตฌ์ฑ ์์๊ฐ ์๋ก ์ํธ ์์ฉํ๋ ๋ฐฉ๋ฒ์ ์ ์ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ด๋ ์์ฒญ-์๋ต์ ํตํด ๋ฐ์ํฉ๋๋ค. ์์ฒญ์ ๋ณด๋ด๋ ๊ตฌ์ฑ ์์๋ฅผ ํด๋ผ์ด์ธํธ ๋ผ๊ณ ํฉ๋๋ค . ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ํด๋ผ์ด์ธํธ์ ์๋ต์ ๋ณด๋ด๋ ๊ตฌ์ฑ ์์๋ฅผ ์๋ฒ ๋ผ๊ณ ํฉ๋๋ค . ์์ฒญ๊ณผ ์๋ต์ ๋๋ถ๋ถ HTTP(HyperText Transfer Protocol)๋ฅผ ํตํด ์ ์ก๋ฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์๋ฒ๋ ์ผ์ข ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ค. ํด๋ผ์ด์ธํธ๋ ์๋ฌด๊ฒ๋ ๋ ์ ์์ง๋ง ๊ฝค ๋ง์ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์ต๋๋ค. ๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ค์ด๋ก๋ํ๊ธฐ ์ํด ์น ํ์ด์ง์์ ์๋ฒ๋ก ์์ฒญ์ ๋ณด๋ด๋ ๋ธ๋ผ์ฐ์ ์ ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ A๋ ์ ํ๋ฆฌ์ผ์ด์ B๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด A๋ B์ ๊ด๋ จ๋ ํด๋ผ์ด์ธํธ์ด๊ณ , B๋ A์ ๊ด๋ จ๋ ์๋ฒ์ ๋๋ค. ๋์์ A๋ C, D, D ๋ฑ์ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์ ํ๋ฆฌ์ผ์ด์ A๋ ์๋ฒ์ด์ ํด๋ผ์ด์ธํธ์ ๋๋ค. ๊ทธ๊ฒ์ ๋ชจ๋ ์ํฉ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ํ ๊ฐ์ง๋ ๋ถ๋ช ํฉ๋๋ค. ์์ฒญ์ ๋ณด๋ด๋ ๊ตฌ์ฑ ์์๋ ํด๋ผ์ด์ธํธ์ ๋๋ค. ์์ฒญ์ ์์ , ์ฒ๋ฆฌ ๋ฐ ์๋ตํ๋ ๊ตฌ์ฑ ์์๋ ์๋ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๊ตฌ์ฑ์์๊ฐ ์์ฒญ-์๋ต์ ํตํด ํต์ ํ๋ ๋ชจ๋ ์์คํ ์ด REST(๋๋ RESTful) ์์คํ ์ ์๋๋๋ค. ์์คํ ์ด RESTful๋ก ๊ฐ์ฃผ๋๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ 6๊ฐ์ง REST ์ ์ฝ ์กฐ๊ฑด์ "์ ํฉ"ํด์ผ ํฉ๋๋ค.1. ์ํคํ ์ฒ๋ฅผ ํด๋ผ์ด์ธํธ-์๋ฒ ๋ชจ๋ธ๋ก ๊ฐ์ ธ์ค๊ธฐ
์ด๋ฌํ ์ ํ์ ๊ธฐ๋ณธ์ ์๊ตฌ ์ฌํญ์ ์ฐจ๋ณํ์ ๋๋ค. ํด๋ผ์ด์ธํธ ์ธํฐํ์ด์ค์ ์๊ตฌ ์ฌํญ๊ณผ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์๋ฒ์ ์๊ตฌ ์ฌํญ์ ๋ถ๋ฆฌํด์ผ ํฉ๋๋ค. ์ด๋ฌํ ์ ํ์ผ๋ก ์ธํด ํด๋ผ์ด์ธํธ ์ฝ๋์ ๋ค๋ฅธ ํ๋ซํผ์ผ๋ก์ ์ด์์ฑ์ด ํฅ์๋๊ณ , ์๋ฒ ๋ถ๋ถ์ด ๋จ์ํ๋์ด ์์คํ ํ์ฅ์ฑ์ด ํฅ์๋ฉ๋๋ค. "ํด๋ผ์ด์ธํธ"์ "์๋ฒ"์ ์ฐจ์ด๋ก ์ธํด ์๋ก ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ๋ฐํ ์ ์์ต๋๋ค.2. ์ํ ๋ถ์กฑ
REST ์ํคํ ์ฒ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๋ค์ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋์ด์ผ ํฉ๋๋ค. ์์ฒญ ์ฌ์ด์ ์๋ฒ๋ ํด๋ผ์ด์ธํธ ์ํ์ ๋ํ ์ ๋ณด๋ฅผ ์ ์ฅํ ํ์๊ฐ ์์ผ๋ฉฐ ๊ทธ ๋ฐ๋์ ๊ฒฝ์ฐ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ํด๋ผ์ด์ธํธ์ ๋ชจ๋ ์์ฒญ์ ์๋ฒ๊ฐ ์์ฒญ์ ์๋ฃํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ์์ ํ ์ ์๋๋ก ๊ตฌ์กฐํ๋์ด์ผ ํฉ๋๋ค. ์ด๋ฐ ๋ฐฉ์์ผ๋ก ์๋ฒ์ ํด๋ผ์ด์ธํธ๋ ๋ชจ๋ ์ด์ ๋ฉ์์ง์ ์์กดํ์ง ์๊ณ ์์ ๋ ๋ชจ๋ ๋ฉ์์ง๋ฅผ "์ดํด"ํ ์ ์์ต๋๋ค.3. ์บ์ฑ
ํด๋ผ์ด์ธํธ๋ ์๋ฒ ์๋ต์ ์บ์ํ ์ ์์ต๋๋ค. ์ด๋ ํด๋ผ์ด์ธํธ๊ฐ ํ์ ์์ฒญ์ ๋ํ ์๋ต์ผ๋ก ์ค๋๋๊ฑฐ๋ ์๋ชป๋ ๋ฐ์ดํฐ๋ฅผ ์์ ํ์ง ์๋๋ก ์บ์ ๊ฐ๋ฅ ๋๋ ์บ์ ๋ถ๊ฐ๋ฅ์ผ๋ก ๋ช ์์ ๋๋ ์์์ ์ผ๋ก ์ง์ ๋์ด์ผ ํฉ๋๋ค. ์บ์ฑ์ ์ ์ ํ๊ฒ ์ฌ์ฉํ๋ฉด ์ผ๋ถ ํด๋ผ์ด์ธํธ-์๋ฒ ์ํธ ์์ฉ์ ์์ ํ ๋๋ ๋ถ๋ถ์ ์ผ๋ก ์ ๊ฑฐํ์ฌ ์์คํ ์ฑ๋ฅ๊ณผ ํ์ฅ์ฑ์ ๋์ฑ ๋์ผ ์ ์์ต๋๋ค.4. ์ธํฐํ์ด์ค์ ํต์ผ์ฑ
REST ์ํคํ ์ฒ์ ๊ธฐ๋ณธ ์๊ตฌ ์ฌํญ์๋ ํตํฉ๋๊ณ ์ผ๊ด๋ ์ธํฐํ์ด์ค๊ฐ ํฌํจ๋ฉ๋๋ค. ํด๋ผ์ด์ธํธ๋ ์์ฒญ์ ๋ณด๋ด๋ ๋ฐ ํ์ํ ํ์๊ณผ ์ฃผ์๋ฅผ ํญ์ ์ดํดํด์ผ ํ๋ฉฐ, ์๋ฒ๋ ํด๋ผ์ด์ธํธ ์์ฒญ์ ์๋ตํด์ผ ํ๋ ํ์๋ ์ดํดํด์ผ ํฉ๋๋ค. ์ด๋ ํด๋ผ์ด์ธํธ-์๋ฒ ์ํธ ์์ฉ์ ์ํ ํตํฉ ํ์์ผ๋ก, ๋ฌด์์, ์ด๋์, ์ด๋ค ํ์์ผ๋ก, ์ด๋ป๊ฒ ๋ณด๋ผ ๊ฒ์ธ์ง๋ฅผ ์ค๋ช ํ๋ ํตํฉ ์ธํฐํ์ด์ค์ ๋๋ค.5. ๋ ์ด์ด
๋ ์ด์ด๋ ๋คํธ์ํฌ์ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ๋ํ๋ ๋๋ค. ๋๋ก๋ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์ง์ ํต์ ํ ์๋ ์๊ณ ๋๋ก๋ ์ค๊ฐ ๋ ธ๋์ ๊ฐ๋จํ ํต์ ํ ์๋ ์์ต๋๋ค. ์ค๊ฐ ์๋ฒ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ก๋ ๋ฐธ๋ฐ์ฑ ๋ฐ ๋ถ์ฐ ์บ์ฑ์ ํตํด ํ์ฅ์ฑ์ ๋์ผ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ณด๊ฒ ์ต๋๋ค. ์ ์ธ๊ณ์ ์ผ๋ก ์ธ๊ธฐ๋ฅผ ๋๊ณ ์๋ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ํด ๋ด ์๋ค. ๊ทธ ํต์ฌ ๋ถ๋ถ์ ์ด๋ฏธ์ง๋ฅผ ๋ก๋ฉํ๋ ๊ฒ์ ๋๋ค. ์๋ฐฑ๋ง ๋ช ์ ์ฌ์ฉ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ํ๋์ ์๋ฒ๊ฐ ์ด๋ฌํ ๊ณผ๋ํ ๋ถํ๋ฅผ ๊ฒฌ๋ ์ ์์ต๋๋ค. ์์คํ ์ ์ฌ๋ฌ ๊ณ์ธต์ผ๋ก ๋๋๋ฉด ์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๋ค. ํด๋ผ์ด์ธํธ๋ ์ค๊ฐ ๋ ธ๋์ ์ด๋ฏธ์ง๋ฅผ ์์ฒญํ๊ณ , ์ค๊ฐ ๋ ธ๋๋ ํ์ฌ ๋ก๋๊ฐ ๊ฐ์ฅ ์ ์ ์๋ฒ์ ์ด๋ฏธ์ง๋ฅผ ์์ฒญํ ํ ํด๋น ์ด๋ฏธ์ง๋ฅผ ํด๋ผ์ด์ธํธ์ ๋ฐํํฉ๋๋ค. ๊ณ์ธต ๊ตฌ์กฐ์ ๊ฐ ์์ค์์ ์บ์ฑ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ ์ฉ๋๋ฉด ์ฐ์ํ ์์คํ ํ์ฅ์ฑ์ ์ป์ ์ ์์ต๋๋ค.6. ์ฃผ๋ฌธํ ์ฝ๋(์ ํ์ ์ ํ)
์ด๋ฌํ ์ ํ์ ํด๋ผ์ด์ธํธ๊ฐ ์ ํ๋ฆฟ์ด๋ ์คํฌ๋ฆฝํธ ํํ๋ก ์๋ฒ์์ ์ฝ๋๋ฅผ ๋ค์ด๋ก๋ํ์ฌ ๊ธฐ๋ฅ์ ํ์ฅํ ์ ์์์ ์๋ฏธํฉ๋๋ค.REST์ ์ด์
์์ ๋ชจ๋ ์ ํ ์ฌํญ์ ์ค์ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์๋ ๋ค์๊ณผ ๊ฐ์ ์ฅ์ ์ด ์์ต๋๋ค. ์์ ์ฑ(์์ค๋ ์ ์๋ ํด๋ผ์ด์ธํธ ์ํ ์ ๋ณด๋ฅผ ์ ์ฅํ ํ์๊ฐ ์์)- ์ฑ๋ฅ(์บ์ ์ฌ์ฉ์ผ๋ก ์ธํด)
- ํ์ฅ์ฑ;
- ์ํธ์์ฉ ์์คํ ์ ํฌ๋ช ์ฑ;
- ์ธํฐํ์ด์ค์ ๋จ์์ฑ;
- ๊ตฌ์ฑ ์์์ ์ด์์ฑ;
- ๋ณ๊ฒฝ์ ์ฉ์ด์ฑ;
- ์๋ก์ด ์๊ตฌ ์ฌํญ์ ์ ์ํ๊ณ ๋ฐ์ ํ๋ ๋ฅ๋ ฅ.
GO TO FULL VERSION