๐ค
ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ REST API๋ผ๋ ๋จ์ด๋ฅผ ๊ณ์ ๋ฃ๊ฒ ๋์๋๋ฐ ๋์ถฉ์ ๊ทธ ์๋ฏธ๋ฅผ ์๊ฒ ์ง๋ง ์ข ๋ ์์ธํ ์๊ณ ์ถ๋ค๋ ์๊ฐ์ด ๋ค์ด์ ์ ๋ฆฌํ๊ฒ ๋์๋ค.
API
API(Application Programming Interface) : ์๋ก ๋ค๋ฅธ ์ํํธ์จ์ด ์์คํ
์ด ํต์ ํ ์ ์๋๋ก ํ๋ ๊ท์น๊ณผ ๋๊ตฌ์ ์งํฉ.
- ์ํํธ์จ์ด ๊ฐ์ "๊ณ์ฝ" -> ์ด๋ป๊ฒ ์ํธ์์ฉํ ์ง ์ ์ํจ
- ์ค๊ฐ์ ์ญํ -> ํ ํ๋ก๊ทธ๋จ์ด ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ ๊ธฐ๋ฅ์ด๋ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๊ฒ ํจ
- ์ถ์ํ ๊ณ์ธต์ ์ ๊ณต -> ๋ณต์กํ ๋ด๋ถ ๊ตฌํ์ ์จ๊ธฐ๊ณ ๊ฐ๋จํ ์ธํฐํ์ด์ค๋ง ๋
ธ์ถํจ
REST API(RESTful API)

- ์น ์๋น์ค๋ฅผ ๊ตฌ์ถํ๋ ์ํคํ
์ฒ ์คํ์ผ
- ์ ํ๋ฆฌ์ผ์ด์
ํตํฉ, ์ํคํ
์ฒ์ ๊ตฌ์ฑ์์๋ฅผ ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ ์ ๊ณต
- JSON์ด๋ XML๊ณผ ๊ฐ์ ํ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์
- ์น, ๋ชจ๋ฐ์ผ ์ฑ, IoT ์ฅ์น ๋ฑ ๋ค์ํ ๊ณณ์์ ํ์ฉ๋จ
REST ์ค๊ณ ์์น
๊ท ์ผํ ์ธํฐํ์ด์ค
- ๊ฐ์ ๋ฆฌ์์ค๋ ํญ์ ๋์ผํ ๋ฐฉ์์ผ๋ก ์ ๊ทผํ ์ ์์ด์ผ ํจ
- ํ๋์ ๋ฐ์ดํฐ๋ ํ๋์ URI(์ฃผ์)์๋ง ์กด์ฌํด์ผ ํจ
- ๋ฆฌ์์ค๋ ์ ์ ํ ํฌ๊ธฐ๋ก ์ค๊ณ๋์ด ํ์ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ํฌํจํด์ผ ํจ
- ์์) ์ฌ์ฉ์ ์ ๋ณด๋ ํญ์ /users/{id}๋ก ์ ๊ทผ, ์ด๋์ ์์ฒญํ๋ ๋์ผํ ํ์์ผ๋ก ์๋ต
ํด๋ผ์ด์ธํธ-์๋ฒ ๋ถ๋ฆฌ
- ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ ๋
๋ฆฝ์ ์ผ๋ก ์กด์ฌํ๊ณ ๋ฐ์ ํจ
- ํด๋ผ์ด์ธํธ๋ ๋ฆฌ์์ค์ URI๋ง ์๋ฉด ๋จ
- ์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ๋ฐ์ดํฐ๋ง ์ ๋ฌํ๊ณ ํด๋ผ์ด์ธํธ๋ฅผ ์์ ํ์ง ์์
- ์์) ์น ๋ธ๋ผ์ฐ์ (ํด๋ผ์ด์ธํธ)์ ์น ์๋ฒ๋ ์๋ก์ ๋ด๋ถ ๊ตฌ์กฐ๋ฅผ ๋ชฐ๋ผ๋ ํต์ ๊ฐ๋ฅ
๋ฌด์ํ
- ๊ฐ ์์ฒญ์ ๋
๋ฆฝ์ ์ด๋ฉฐ ์ด์ ์์ฒญ๊ณผ ๋ฌด๊ดํจ
- ๋ชจ๋ ์์ฒญ์๋ ์ฒ๋ฆฌ์ ํ์ํ ๋ชจ๋ ์ ๋ณด๊ฐ ํฌํจ๋์ด์ผ ํจ
- ์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ์ํ๋ฅผ ์ ์ฅํ์ง ์์
- ์์) ๋งค๋ฒ ATM ๊ธฐ๊ณ๋ฅผ ์ฌ์ฉํ ๋๋ง๋ค ์นด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ์๋ก ์
๋ ฅํ๋ ๊ฒ๊ณผ ๊ฐ์
์บ์ ๊ฐ๋ฅ์ฑ
- ์๋ต์ ์บ์ ๊ฐ๋ฅ ์ฌ๋ถ๋ฅผ ๋ช
์ํด์ผ ํจ
- ์ ์ ํ ์บ์ฑ์ผ๋ก ์ฑ๋ฅ ํฅ์ ๋ฐ ์๋ฒ ๋ถํ ๊ฐ์
- ์์) ์์ฃผ ๋ณ๊ฒฝ๋์ง ์๋ ๋ฐ์ดํฐ(์: ์ ํ ์ด๋ฏธ์ง)๋ ํ๋ฒ ๋ค์ด๋ก๋ ํ ์ฌ์ฌ์ฉ
๊ณ์ธตํ๋ ์์คํ
์ํคํ
์ฒ
- ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด์ ์ฌ๋ฌ ์ค๊ฐ ๊ณ์ธต์ด ์กด์ฌํ ์ ์์
- ํด๋ผ์ด์ธํธ๋ ์ต์ข
์๋ฒ์ ์ง์ ํต์ ํ๋์ง ์ค๊ฐ ๊ณ์ธต๊ณผ ํต์ ํ๋์ง ์ ์ ์์
- ์์) ์ธํฐ๋ท ํต์ ์์ ๋ฐ์ดํฐ๊ฐ ์ฌ๋ฌ ๋ผ์ฐํฐ๋ฅผ ๊ฑฐ์ณ ์ ๋ฌ๋์ง๋ง ์ฌ์ฉ์๋ ์ ํ์ ์์
REST API ์๋๋ฐฉ์

GET : ๋ฐ์ดํฐ ์กฐํ
POST : ์ ๋ฐ์ดํฐ ์์ฑ
PUT / PATCH : ๋ฐ์ดํฐ ์์
DELETE : ๋ฐ์ดํฐ ์ญ์