โถ API
API๊ฐ ๋ญ๊น!!๐ค
์. ์นด์นด์คํก์ ์๊ฐํด ๋ด ์๋ค.
ํด๋ผ์ด์ธํธ ์ปดํจํฐ์ ์๋ฒ ์ปดํจํฐ๊ฐ ์์ฃ ?
ํด๋ฆฌ์ด์ธํธ๋ ์๋ฒ์๊ฒ ์์ฒญ์ ๋ณด๋ ๋๋ค.
"๋ฉ์์ง, ๋น๋์ค ํ์ผ, ์ด๋ฏธ์ง ํ์ผ์ ์ค."
"๋ก๊ทธ์ธ, ํ์๊ฐ์ ์์ผ์ค."
"์ด ๋ฉ์์ง ์ญ์ ํด์ค."
๊ทธ๋ผ ์๋ฒ๋ ์์ฒญ์ ๋ฐ๋ผ ์ ํฉํ ์ฒ๋ฆฌ๋ฅผ ํด์ ์๋ต์ ์ค ๊ฑฐ์์.
๊ทผ๋ฐ, ์ปดํจํฐ๋ ํ๊ธ์ ๋ชฐ๋ผ์...๐ข
๊ทธ๋์ ์ด๋ค ์์ฒญ์ด '๋ฉ์์ง๋ฅผ ๋ฌ๋ผ'๋ ์์ฒญ์ธ์ง, '๋ก๊ทธ์ธ ์์ผ์ค'๋ผ๋ ์์ฒญ์ธ์ง ์ ์ ์์ฃ ..
์ด ์์ฒญ์ ์ปดํจํฐ๊ฐ ๊ตฌ๋ถํ ์ ์๋๋ก ํ๋ '์ฒด๊ณ'๊ฐ ํ์ํ์ด์.
๊ทธ ์ฒด๊ณ๊ฐ ๋ฐ๋ก API์์!!
API = ํด๋ผ์ด์ธํธ, ์๋ฒ์ ๊ฐ์ ์๋ก ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์์ ์์ฒญ๊ณผ ์๋ต์ ์ฃผ๊ณ ๋ฐ์ ์ ์๊ฒ ๋ง๋ ์ฒด๊ณ
์ด๋ ๊ฒ ์๊ฐํ๋ฉด ๋ผ์.๐ง
๊ทธ๋ผ ์ด์ API๋ ์ด๋ป๊ฒ ์งํ๋๋์ง ์์๋ณผ๊น์?๐ง
์์ฒญ์ ๋ณด๋ด๋ ์ชฝ๊ณผ ์๋ต์ ์ฃผ๋ ์ชฝ.
์ด๋ ๊ฒ ๋๋์ด์ ธ ์์ด์.
(์ค๋งํธํฐ(ํด๋ผ์ด์ธํธ ์ปดํจํฐ)์ ์์ฒญ์ ๋ณด๋ด๊ณ , ์๋ฒ ์ปดํจํฐ๋ ์์ฒญ์ ๋ฐ์์ ์๋ต์ ์ฃผ๋ ๊ฑฐ์ฃ .)
์ด๋ ๊ฒ ์งํ๋๋ ค๋ฉด, ์๋ต์ ์ฃผ๋ ์ชฝ์์ ๋ฏธ๋ฆฌ!
'์ฌ๊ธฐ๋ก ์์ฒญํ๋ฉด ์ด๋ฐ ์๋ต์ ์ฃผ๊ณ , ์ ๊ธฐ๋ก ์์ฒญํ๋ฉด ์ ๋ฐ ์๋ต์ ์ค๊ฒ'
์ด๋ฐ ๊ฑธ ์ ํด๋์ผ ํด์.
๊ทธ๋์ผ ์์ฒญํ๋ ์ชฝ์์ '์ ํํ ๊ณณ'์ ์์ฒญ์ ๋ณด๋ผ ์ ์๊ฒ ์ฃ ??
์ด '์ ํํ ๊ณณ'์ '์๋ฒ์ฃผ์/A'์ ํํ์ ์ฃผ์๋ก ์ ์๋์ด ์์ด์.
(์ฌ๊ธฐ์ '์๋ฒ์ฃผ์'๋ [03์ฅ]์์ ์ ๋ฆฌํ๋ IP ์ฃผ์์์!)
์ด ์ฃผ์ ๋ค์ ์ด๋ค ๋ฌธ์๋ฅผ ์ฐ๋๋์ ๋ฐ๋ผ ๋ค๋ฅธ ๊ธฐ๋ฅ์ ์ํํ๋๋ก ์ ์ํ๋ ๊ฑฐ์ฃ .
A๋ '๋ก๊ทธ์ธ ๊ธฐ๋ฅ', B๋ 'ํ์ ๊ฐ์ ๊ธฐ๋ฅ', ...
์ด๋ ๊ฒ ์๋ง๊ฒ ์๋ฒ๊ฐ ์๋ตํ ์ ์๊ฒ ๋๋ ๊ฑฐ์์.
์ฌ๊ธฐ์ ์๋ต์ '์ ๋์๋ค', '๋ฌธ์ ๊ฐ ์๋ค', '๋ฌธ์ ๊ฐ ์๋ค๋ฉด ๋ฌด์จ ๋ฌธ์ ์ธ์ง', ๋ฑ๋ฑ.... ์๋ ค์ค๋๋ค.
(์ด ๊ธฐ๋ฅ์ ์๋ฒ ๊ฐ๋ฐ์๊ฐ ๋ง๋ค์ด์. ๊ทธ ๊ฒฐ๊ณผ๋ฌผ์ด ๋ฐ๋ก ์๋ฒ ํ๋ก๊ทธ๋จ์ด์์.
์๋ฒ ์ฃผ์ ์ ์ ์ญ์ ์๋ฒ ๊ฐ๋ฐ์์ ์ํด์ ์ด๋ฃจ์ด์ ธ์.)
์ ๋ฆฌํ์๋ฉด
API๋ ์๋ฒ ๊ฐ๋ฐ์๊ฐ ๊ฐ๋ฐํ๊ณ , ํด๋ผ์ด์ธํธ ๊ฐ๋ฐ์๋ ๊ทธ API๋ฅผ ์ฌ์ฉํ๋ค.
API๋ ์ํํธ์จ์ด๊ฐ ๋ค๋ฅธ ์ํํธ์จ์ด์ ๊ธฐ๋ฅ์ ์ฐ๊ธฐ ์ํด ์ค๊ฐ์ ํ์ํ ์ฒด๊ณ์ด๋ค.
์ฝ๊ฒ ๋งํด, ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ธฐ ์ํด ์ฃผ์๋ก ์์ฒญ์ ๋ณด๋ด๋ฉด ์๋ต์ ํด์ฃผ๋ ์ํํธ์จ์ด๋ผ๋ฆฌ์ ์ฒด๊ณ์ด๋ค.
โ ํ ๊ฐ์ง ๋ ์ถ๊ฐ
API๋ฅผ ๋ง๋ค ๋๋ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ธฐ๋ฅ๋ ํจ๊ป ๋ฃ์ด์.
(๋ก๊ทธ์ธ ์์ฒญ์, ์์ด๋์ ๋น๋ฐ๋ฒํธ ๋ฐ์ดํฐ ํ์
๋น๋์ค ํ์ผ์ด๋ ์ด๋ฏธ์ง ํ์ผ์ ๋ํ ์๋์ ๋ฐ์ ๋, ๋ฐ์ดํฐ ํ์)
API๋ฅผ ํตํด ์์ฒญ๊ณผ ์๋ต์ ์ฃผ๊ณ ๋ฐ์ ๋๋ ๋ฐ์ดํฐ๋ ๊ฐ์ด ๋ด๊ธด๋ค. ์์๋ก์๋ค!๐ค
โถ ํด๋ผ์ด์ธํธ์ ์๋ฒ์ ๊ด์
โท ํด๋ผ์ด์ธํธ
ํด๋ผ์ด์ธํธ์ ๊ด์ ์์ ๋ด ์๋ค. ์๋ฒ์ ์์ฒญ์ ๋ณด๋ผ ๋, ์ด ์์ฒญ์๋ 4๊ฐ์ง ์์๋ก ๋๋ ์ ์์ด์.
<CRUD>
C: Create → '์ฌ๋ฆฌ๋' ์์ฒญ
R: Read → '๋ถ๋ฌ์ค๋' ์์ฒญ
U: Update → '๋ฐ๊พธ๋' ์์ฒญ
D: Delete → '์ง์ฐ๋' ์์ฒญ
CRUD๋ ์์ฃผ ์ค์ํ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ์๋ค์ ๋ฐ์ดํฐ๋ฅผ ๋ณผ ๋ ํญ์ CRUD์ ๊ด์ ์์ ์๊ฐํด์.
(๋ง์ฝ, CRUD ์ค ํน์ ๊ธฐ๋ฅ์ด ์๋ ๊ธฐํ์ด๋ผ๋ฉด, ๊ทธ ๊ธฐํ ์๋๊ฐ ๋ช ํํด์ผ ํ๊ณ , ์ด์ ๋ ์ค๋ช ํ ์ ์์ด์ผ ํด์.)
CRUD์ ์์๋ฅผ ํ ๋ฒ ๋ณผ๊น์?
ํ์๋ผ์ธ์ CRUD ์์ฒญ์ ๊ฐ๊ฐ์ ์ฃผ์๋ฅผ ๊ฐ์ง๋๋ค.
C์ ๊ฒฝ์ฐ, '์๋ฒ ์ปดํจํฐ ์ฃผ์/timelinecreate'
R,U,D๋ ๊ฐ๊ฐ์ ์ฃผ์๋ฅผ ๊ฐ์ ธ์.
์ด๋ ๊ฒ ๊ฐ๊ฐ ์ฃผ์๊ฐ ์์ด์ผ ํด๋ผ์ด์ธํธ๊ฐ ์ํ๋ ๊ธฐ๋ฅ์ ์๋ง๋ ํด๋น ์ฃผ์๋ก ์์ฒญ์ ๋ณด๋ผ ์ ์๊ฒ ์ฃ ?
๊ทผ๋ฐ, ์ฌ๊ธฐ์ ๋ฌธ์ ๊ฐ ๋ญ๊น์?
์ด๋ ๊ฒ ์ฃผ์๋ฅผ ๊ตฌ์ฑํ๋ค ๋ณด๋ฉด, ์ฃผ์๊ฐ ๋๋ฌด ๋ง์์ง๊ณ ๊ด๋ฆฌํ๊ธฐ ํ๋ค์ด์ง๋ค๋ ๊ฑฐ์์.
์ง๊ธ์ 4๊ฐ๋ผ ์๋ฟ์ง ์๊ฒ ์ง๋ง, ์ด๋ฐ ์ฃผ์๊ฐ 10000๊ฐ๋ผ๊ณ ์๊ฐํด ๋ณด์ธ์. ๋จธ๋ฆฌ ํฐ์ง๊ฒ ์ฃ ...?๐
๊ทธ๋ฆฌ๊ณ ์ด๋ ๊ฒ ๋ง์์ง๋ฉด, ์ฃผ์๋ค์ ๊ธฐ๋ฅ์ด ๊ฒน์น ์ ์์ด์.
์ด๋ฌํ ์ด์ ๋ก ์กฐ๊ธ ๋ ์ฒด๊ณ์ ์ธ API,
API๋ฅผ REST(Representational State Tranfer)ํ API,
RESTful API๊ฐ ๋ง๋ค์ด์ง๊ฒ ๋ฉ๋๋ค.
RESTful API์์๋ ์ ๋ณด๋ค ์ฃผ์์ ๊ฐ์๊ฐ ์ค์ด๋ค์ด,
CRUD๋ฅผ ํ๋์ ์ฃผ์๋ก ๊ด๋ฆฌํด์.
๊ทธ๋ฆฌ๊ณ ์์ฒญ์ ๋ณด๋ผ ๋, ์๋์ ๊ฐ์ด ์ด๋ค ์์ฒญ์ธ์ง ํ์ ํ ์ ์๊ฒ ์คํฐ์ปค๋ฅผ ํจ๊ป ๋ถ์ฌ ์ ์กํด์.
C: Create(์์ฑํด์ค) → POST
R: Read(๋ถ๋ฌ์ ์ค) → GET
U: Update(๋ฐ๊ฟ์ค) → PUT(์ ์ฒด) / PATCH(์ผ๋ถ)
D: Delete(์ง์์ค) → DELETE
๐ก์ด 5๊ฐ์ ์คํฐ์ปค๋ ์์ฃผ ์ฐ์ด๋ ๊ผญ ์์๋ก์๋ค!!(↑↑↑)
๐กRESTful API๋ ๋ชจ๋ ํ์ฌ์์ ํต์ฉ๋๋ ๊ท์น์ด ์๋ ์ผ์ข ์ ์ฌํ ์ด๋์ด์์.
์ํฉ๋ง๋ค ๋ค์ํ ๋ฐฉ์์ผ๋ก ๋ณํํด์ ์ฌ์ฉํด์. ์ด ์ ๋ ์๊ณ ๋์ด๊ฐ์๋ค.
๐ก์ฐธ๊ณ ๋ก, ํ์ ์์๋ '์คํฐ์ปค'๋ผ๋ ์ฉ์ด๋ฅผ ์ฌ์ฉํ์ง ์์์.๋์ , '๋ฉ์๋(Method)'๋ผ๋ ์ฉ์ด๋ฅผ ์ฌ์ฉํด์.
โ ํจ์์์๋ x๋ฅผ '๋ณ์', 'ํ๋ผ๋ฏธํฐ(Parameter)'๋ผ๊ณ ํํํด์.
โท ์๋ฒ
์ด๋ฒ์๋ ์๋ฒ์ ๊ด์ ์์ ๋ด ์๋ค.
ํด๋ผ์ด์ธํธ์๊ฒ ๋ฐ์ ์์ฒญ์ ์๋ฒ๋ ๋ค์๊ณผ ๊ฐ์ด ์๊ฐํด์.
'์์ฒญ์ ๋ณด๋ธ ์ฌ์ฉ์๊ฐ ๊ฐ์ ๋ ์ฌ์ฉ์์ธ๊ฐ?'
'๋น๋ฐ๋ฒํธ๊ฐ ํ๋ ธ๋ค! ํ์ธํด ๋ณด๋ผ๊ณ ๋งํด์ค์ผ๊ฒ ๋ค.'
'์น๊ตฌ ์ค์ A๋ฅผ ์ฐพ์๋ฌ๋ผ๊ณ ? A๋ ์๋๋ฐ? ์๋ค๊ณ ๋งํด์ค์ผ๊ฒ ๋ค.'
'์น๊ตฌ ๋ชฉ๋ก์ ๋ณด๋ด ๋ฌ๋ผ๊ณ ? ์น๊ตฌ๊ฐ ์๋๋ฐ?'
'๋น๋ฐ๋ฒํธ๋ฅผ ์์ด๋ฒ๋ ธ๋ค๊ณ ? ์ฌ์ค์ ์ด ํ์ํ์ง ๋ฌผ์ด๋ด์ผ๊ฒ ๋ค.'
์์ ๊ฐ์ด ์ปดํจํฐ๊ฐ ์๊ฐํ ์ ์๋ค๋ ๊ฒ์ ์๋ฒ ๊ฐ๋ฐ์๊ฐ ์ฝ๋ฉํ๋ค๋ ๊ฒ์ ์๋ฏธํด์.
์ฝ๋ฉ์ ๋ฐ๋ฅธ ์๋ต์๋ 2๊ฐ์ง ๊ฒฝ์ฐ๊ฐ ์์ด์.
ํ๋๋ '์ ๋์ด'
๋ค๋ฅธ ํ๋๋ '์ ์ ๋์ด' ์์.
๊ทธ๋ฆฌ๊ณ ํํ ๋ฐฉ๋ฒ์ ์ ๋ง ๋ค์ํด์.
'์ ๋์ด' → 'Good', 'Great', 'Ok', 'Success' or 'a', 'b' or '์ ๋์ด'
๋ผ๊ณ ํํํ ์๋ ์์ฃ .
์ฌ๊ธฐ์ ๋ฐ์ํ๋ ๋ฌธ์ ๋ ๋ญ๊น์?
50๊ฐ์ ๋ถ์๊ฐ ์๋ค๊ณ ๊ฐ์ ํด๋ด ์๋ค.
๊ฐ ๋ถ์์์ '์ ๋์ด'๋ผ๋ ์๋ต์ ์๋ก ๋ค๋ฅด๊ฒ ์ค๋ค๋ฉด...?
๋ฐ๋ ์ฌ๋ ์ ์ฅ์์๋ ๊ทธ ๋ชจ๋ ํํ์ ํ๋ํ๋ ๋์ํ๋ ์ฝ๋๋ฅผ ๋ง๋ค์ด์ผ ํ๋...
๊ต์ฅํ ๊ณค๋ํ๊ฒ ์ฃ ?
๊ทธ๋์ ๊ฐ๋ฐ์๋ค์ '์ ๋์ด', '์ ์ ๋์ด'์๋ ์ฒด๊ณ๊ฐ ํ์ํ๋ค๊ณ ์๊ฐํ์ด์.
'์ ๋์ด'๋ 200๋ฒ๋ ์ฝ๋๋ก,
'์ ์ ๋์ด'๋ ๋ ๊ฐ์ง ๊ฒฝ์ฐ๊ฐ ์์ด์.
โ ํด๋ผ์ด์ธํธ ์์ฒญ์ ๋ฌธ์ ๊ฐ ์์ด์ ์ ๋ ๊ฒฝ์ฐ (400๋ฒ๋ ์ฝ๋)
โก ์๋ฒ ๋ด๋ถ์ ์ผ๋ก ์ ์ ๋ ๊ฒฝ์ฐ (500๋ฒ๋ ์ฝ๋)
์ด๋ ๊ฒ ๋ค๋ฅด๊ฒ ํํํ๋ฉด, ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋ ์์ธ์ ์ฐพ๊ธฐ ๋ ์ฌ์์ง๊ฒ ์ฃ ?
๋ชจ๋ ์ฝ๋๋ฅผ ์๊ธฐํ ํ์๋ ์์ด์.
200, 400, 500์ ํฐ ํ์์ ์ดํดํ๋ฉด ๋ฉ๋๋ค.
๊ทธ ์ค์์๋ ์์ฃผ ์ฐ์ด๋ ์ฝ๋๊ฐ ์๋๋ฐ, ๊ณ์ ๋ฃ๋ค ๋ณด๋ฉด ์ต์ํด์ง ๊ฑฐ์์.
โถSDK
API๋ฅผ ์ ๊ณตํด์ฃผ๋ '๋ค๋ฅธ ์ํํธ์จ์ด'๋ฅผ 'SDK'๋ผ๊ณ ๋ถ๋ฌ์.
SKD๋ Software Delvelopment Kit์ ์ฝ์๋ก, ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ๊ธฐ ์ํ ๋๊ตฌ์์!
'โโ์ํํธ์จ์ด'๋ฅผ ๊ฐ๋ฐํ ๋ ๋์์ ์ฃผ๋ '๋ค๋ฅธ ์ํํธ์จ์ด'๋ผ๊ณ ์๊ฐํ๋ฉด ๋ฉ๋๋ค.
๋ณดํต ๋ค๋ฅธ ํ์ฌ์ ํ์ ํ ๋, SDK๋ผ๋ ์ด์ผ๊ธฐ๋ฅผ ๋ฃ๊ฒ ๋ ๊ฑฐ์์.
์์๋ฅผ ํ ๋ฒ ์ดํด๋ณผ๊น์?
๊ตฌ๊ธ ์ง๋๋ ๊ตฌ๊ธ์์ ๋ง๋ ์ํํธ์จ์ด์์.
์ด๋ ๋ค๋ฅธ ํ์ฌ๋ค๋ ๊ตฌ๊ธ์์ ์ ๊ณตํ๋ ์ง๋ SDK๋ฅผ ์ค์นํ๋ฉด,
์์ ๋ค์ ์ํํธ์จ์ด์ ๊ตฌ๊ธ ์ง๋ ๊ธฐ๋ฅ์ ๋ฃ์ ์ ์๊ฒ ๋๋ ๊ฑฐ์์.
์ด SDK์์ ์ ๊ณตํด์ฃผ๋ API๋ค์ ํตํด ๊ตฌ๊ธ ์ง๋์ ์์ฒญ์ ๋ณด๋ผ ์ ์์ด์.
์ง๊ธ๊น์ง!
ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ๋ก ๋ณด๋ด๋ '์์ฒญ(Request)'๊ณผ
์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ๋ก ๋ณด๋ด๋ '์๋ต(Response)'์ ๋ํ ๋ด์ฉ์ด์์ด์.
๊ทธ๋ฆฌ๊ณ , ๊ทธ ์์ฒญ๊ณผ ์๋ต์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ ์ ์๋ '๊ธฐ๋ฅ'์ ๊ฐ์ด ๊ฐ๋ฐํด์ผ ํ๋ค๋ ๋ด์ฉ๋ ์์์ฃ .๐ค
๋ค์ ์ฅ์์๋ ๊ทธ '๊ธฐ๋ฅ'์ ์ฌ๋ฌ ๊ฐ์ง ํ์์์ ๊ณต๋ถํ๋ ค๊ณ ํด์.๐ง
๊ถ๊ธํ๋ค๋ฉด, ๋ค์ ์ฅ '[04-2์ฅ] JSON'์ผ๋ก GO!
_Next
JSON
(์ฐธ๊ณ )๋น์ ๊ณต์๋ฅผ ์ํ ์ดํดํ ์ ์๋ IT์ง์_T.W.I.G
'IT ์ง์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[5์ฅ] ์ ํ๋ฆฌ์ผ์ด์ (2) | 2024.01.29 |
---|---|
[4์ฅ-2] JSON (0) | 2024.01.26 |
[3์ฅ] ๋คํธ์ํฌ, ํด๋ผ์ด์ธํธ, ์๋ฒ (2) | 2024.01.24 |
[2์ฅ-2] ํ๋ก๊ทธ๋๋ฐ ์ธ์ด & ์ด์์ฒด์ (OS) (0) | 2024.01.23 |
[2์ฅ-1] ํ๋ก๊ทธ๋๋ฐ ์ธ์ด & ์ด์์ฒด์ (OS) (0) | 2024.01.22 |