
API๋ ๋ฌด์์ผ๊น์?
Application Programing Interface๋ ์ฝ๋๋ผ๋ฆฌ ์๋ก ์ํตํ๊ธฐ ์ํด ๋ง๋ค์ด์ง ์ธํฐํ์ด์ค๋ผ๊ณ ํฉ๋๋ค.
๋น์ ๋ฅผ ํ์๋ฉด, ์๋ฒ์์ ๋ง๋ ํค๋ณด๋์ ๊ฐ์ต๋๋ค. ํน์ ํค๊ฐ ํ๋ก์ฐ, ๋ก๊ทธ์ธ, ์ข์์์ ๊ธฐ๋ฅ์ ํ๋ค๊ณ ์น๋ฉด ํค๋ฅผ ๋๋ ์ ๋ ๋ฐฑ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์์ฒญ์ ๋ณด๋ ๋๋ค. ์ด๋ค ์ฌ์ดํธ์์ ํน์ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ ๊ฒฝ์ฐ ์ด๋ค ๋ฐฉ์์ผ๋ก ์ ๋ณด๋ฅผ ์์ฒญํด์ผ ํ๋์ง, ๊ทธ๋ฆฌ๊ณ ์ด๋ ํ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณต ๋ฐ์ ์ ์์ ์ง์ ๋ํ ๊ท๊ฒฉ์ด๋ผ๊ณ ๋ณด๋ฉด ๋ฉ๋๋ค.
API๋ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๊ณผ ์ฉ๋์ ๋ฐ๋ผ, ์คํ API์ ๋น๊ณต๊ฐ API ์ ๋ณด๋ก ๊ตฌ๋ถ๋ฉ๋๋ค.
์คํ API๋ ๋ง ๊ทธ๋๋ก ๋๊ตฌ๋ ์ฝ๊ฒ ์ ๊ทผํ์ฌ ์ ๋ณด๋ฅผ ๊ณต์ ํ๊ธฐ ์ํด ๋ง๋ค์ด์ง ๊ท๊ฒฉ์ด๋ฉฐ,
๋น๊ณต๊ฐ API๋ ๊ถํ์ด ์๋ ์ผ๋ถ ์ฌ์ฉ์๋ค์๊ฒ๋ง ์ ๋ณด๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ๋ง๋ค์ด์ง ๊ท๊ฒฉ์
๋๋ค.
์น์ ๊ฐ๋ฐํ ๋ API๋ฅผ ๋ง๋ค๋ฉด REST ๊ตฌ์กฐ๋ก ๋ง๋ค๊ฒ ๋ฉ๋๋ค.
REST๋ Representational State Transfer์ ์ฝ์๋ก, ์์์ ์ด๋ฆ์ผ๋ก ๊ตฌ๋ถํ์ฌ ํด๋น ์์์ ์ํ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๋ชจ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
HTTP URI(Uniform Resource Identifier)๋ฅผ ํตํด ์์(Resource)์ ๋ช ์ํ๊ณ , HTTP Method(POST, GET, PUT, DELETE, PATCH ๋ฑ)๋ฅผ ํตํด ํด๋น ์์(URI)์ ๋ํ CRUD Operation์ ์ ์ฉํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ฌ๊ธฐ์ CRUD๋ ๋๋ถ๋ถ์ ์ปดํจํฐ ์ํํธ์จ์ด๊ฐ ๊ฐ์ง๋ ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๊ธฐ๋ฅ์ธ Create, Read, Update, Delete๋ฅผ ๋ฌถ์ด์ ์ผ์ปซ๋ ๋ง๋ก REST์์์ CRUD Operation ๋์ ์์๋ ์๋์ ๊ฐ์ต๋๋ค.
| ์ ํ | ๊ธฐ๋ฅ |
|---|---|
| Create | ๋ฐ์ดํฐ ์์ฑ, POST |
| Read | ๋ฐ์ดํฐ ์กฐํ, GET |
| Update | ๋ฐ์ดํฐ ์์ , PUT, PATCH |
| Delete | ๋ฐ์ดํฐ ์ญ์ , DELETE |
REST์ 3๊ฐ์ง ๊ตฌ์ฑ์์
| ๊ตฌ์ฑ ์์ | ๋งค๊ฐ์ฒด |
|---|---|
| ์์(Resource) | HTTP URI |
| ์์์ ๋ํ ํ์(Verb) | HTTP Method |
| ์์์ ๋ํ ํ์์ ๋ด์ฉ(Representations) | HTTP Message Pay Load |
REST์ ํน์ง
HTTP ํ๋กํ ์ฝ์ ์ธํ๋ผ๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ๋ฏ๋ก REST API ์ฌ์ฉ์ ์ํ ๋ณ๋์ ์ธํ๋ผ๋ฅผ ๊ตฌ์ถํ ํ์๊ฐ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ HTTP ํ๋กํ ์ฝ์ ํ์ค์ ์ต๋ํ ํ์ฉํ์ฌ ์ฌ๋ฌ ์ถ๊ฐ์ ์ธ ์ฅ์ ์ ํจ๊ป ๊ฐ์ ธ๊ฐ ์ ์์ต๋๋ค.
๊ทธ๋์ HTTP ํ์ค ํ๋กํ ์ฝ์ ๋ฐ๋ฅด๋ ๋ชจ๋ ํ๋ซํผ์์ ์ฌ์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
๋, Hypermedia API์ ๊ธฐ๋ณธ์ ์ถฉ์คํ ์งํค๋ฉด์ ๋ฒ์ฉ์ฑ์ ๋ณด์ฅํฉ๋๋ค.
REST API๋ ๋ฉ์์ง๊ฐ ์๋ํ๋ ๋ฐ๋ฅผ ๋ช
ํํ๊ฒ ๋ํ๋ด๋ฏ๋ก, ์๋ํ๋ ๋ฐ๋ฅผ ์ฝ๊ฒ ํ์
ํ ์ ์์ต๋๋ค.
๊ทธ๋์ ์ฌ๋ฌ ๊ฐ์ง ์๋น์ค ๋์์ธ์์ ์๊ธธ ์ ์๋ ๋ฌธ์ ๋ฅผ ์ต์ํํฉ๋๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ์๋ฒ์ ํด๋ผ์ด์ธํธ์ ์ญํ ์ ๋ช
ํํ๊ฒ ๋ถ๋ฆฌํฉ๋๋ค.
REST API๋ ํ์ค ์์ฒด๊ฐ ์กด์ฌํ์ง ์์ ์ ์๊ฐ ํ์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ HTTP Method ํํ๊ฐ ์ ํ์ ์
๋๋ค.
๋ํ ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ํ
์ค ํธํ ์ผ์ด ๋ง์ ์๋น์ค๋ผ๋ฉด ์ฝ๊ฒ ๊ณ ์น ์ ์๋ URL๋ง๊ณ Header ์ ๋ณด์ ๊ฐ์ ์ฒ๋ฆฌํด์ผํ๋ฏ๋ก ์ ๋ฌธ์ฑ์ด ์๊ตฌ๋ฉ๋๋ค. ๊ตฌํ ๋ธ๋ผ์ฐ์ ์์๋ ํธํ์ด ๋์ง ์์ ์ง์ํ์ง ๋ชปํ๋ ๋์๋ ์์ต๋๋ค.
/๋ฅผ ํฌํจํ์ง ์์ต๋๋ค._๋์ -์ ์ฌ์ฉํฉ๋๋ค.