API์ ์๋ฏธ ์ฅ์ ์ข ๋ฅ๊น์ง
API(Application Programming Interface)๋ ๋ ์ด์์ ์ปดํจํฐ ํ๋ก๊ทธ๋จ์ด
์๋ก ํต์ ํ๋ ๋ฐฉ๋ฒ์ด์ ์ปดํจํฐ ์ฌ์ด์ ์๋ ์ค๊ณ ๊ณ์ธต์ ์๋ฏธํฉ๋๋ค.
์ปดํจํฐ A์ ์ปดํจํฐ B๊ฐ ๋ฐ์ดํฐ๋ฅผ ํต์ ํ๋ค๊ณ ํ์ ๋
A๊ฐ B์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ค๊ณ ํ์ ๋,
B๊ฐ A์๊ฒ ์ค API๋ฅผ ํ๋ ๋ง๋ค์ด ๋๋ ๊ฒ
1.
์ด API์๋ ๋ญ๊ฐ ๋ค์ด๊ฐ ์๋,
ํต์ ๋ฐฉ๋ฒ : Http / Https
๋ฐฉ๋ฒ : Get, Post
๋ฐ์ดํฐ : XML, JSON
์ด๋ฐ ๋ฐฉ๋ฒ๋ค์ด ๋ค์ด๊ฐ ์๊ณ
2.
์ปดํจํฐ์ ์ปดํจํฐ ์ฌ์ด ์ค๊ณ ๊ณ์ธต ์ญํ ์ ํ๋ค. _ ๋ค๋ฆฌ๊ฐ์ ์ญํ
-> ์ด๊ฒ ๋ฐ๋ก API
์๋ฅผ ๋ค์ด์
1. ์ฌ์ฉ์ ์ธํฐํ์ด์ค UI๋ฅผ ์๊ฐํ๋ฉด ์ฝ์ต๋๋ค
UI๋ ์ปดํจํฐ์ ์ฌ๋์ ์ฐ๊ฒฐํฉ๋๋ค.
์ผ์ฑ ์ค๋งํธํฐ์ ๋ณด์ธ์,
์ฑ์ ์คํ์ํค๋ ค๋ฉด ํด๋ฆญ์ ํด์ผํ๊ณ ์ด๋ฐ๊ฑฐ ์์์์
์ด๊ฒ ํธ๋ํฐ๊ณผ ์ฌ๋์ ์ฐ๊ฒฐํ๋ค๋ ๊ฒ
๋ ๋ค๋ฅธ ์์
2. ๋ค์ด๋ฒ ์นํฐ
'๊ด๋งํ๊ท'๋ผ๋ ์นํฐ์ ๋ณด๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ๋๊ฐ?
๊ฒ์-> ๊ธ์์นํฐ -> ...->
์ด๋ฐ ์๋น์ค๋ฅผ ์ด์ฉํ๋ ค๋ฉด ์๊ฒ ๋ชจ๋ฅด๊ฒ ๊ท์น๋ค์ ๋ฐ๋ฅด๊ฒ ๋ฉ๋๋ค.
๊ทธ๋ฐ๊ฑฐ๋ฅผ ์๊ฐํ์๋ฉด ์ฝ๋ค!
์ฌ์ค ์ ํฌ๋
๋ค์ด๋ฒ ์นํฐ์ ์๋ฒ๊ฐ ์ด๋ป๊ฒ ๋์ด์๋์ง,
๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ด๋ป๊ฒ ๋์ด์๋ ์ง ์์ง ๋ชปํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ด๋ฌํ ์ธํฐํ์ด์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก
์นํฐ์ ์๋น์ค๋ฅผ ์ฆ๊ธธ ์ ์๋ ๊ฒ์ด์ฃ .
์ฌ์ค API๋ ๊ณผ๊ฑฐ๋ถํฐ ๋ฐ์ ๋์ด์จ ์ฉ์ด์ ๋๋ค.
์ด์ ์ฌ๋ฌ๊ฐ์ง ๋ป์ด ์์ต๋๋ค.
์ง๊ธ ์ค๋ช ๋๋ฆฌ๋ ๊ฒ์ web API๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ช ๋๋ฆด๊ฑด๋ฐ,
๋ง์ ๋ป์ด ์๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ํ๋ ์์ํฌ๋ฅผ ์ค๋ช ํ๋ ๋ช ์ธ์๋ผ๋ ๋ป๋ ์๊ณ ,
์น์์์ WEB API(์ฐ๋ฆฌ๊ฐ ์ค๋ช ํ ),
Web Socket API ๋ผ๋ ๋ป๋ ์๋ค.
๊ทผ๋ฐ ์์๋ API๋ผ๊ณ ํ์ ๋๋ ,
๋ณดํต WEB API๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ช ํฉ๋๋ค.
API์ ๊ตฌ์กฐ
1. ์ฌ์ฉ์๊ฐ ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด์ ์๋ฒ์ ์์ฒญ์ ํ๊ฒ ๋๋ฉด์
API๊ฐ ์ค๊ณ ๊ณ์ธต ์ญํ ์ ํ๋ฉฐ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๊ฒ์ ๋ณผ ์์๋ค.
-> ์ง์ ์๋ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผ ํ๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ๋ ํ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด?
API์ ์ฅ์
1. ์ ๊ณต์(API๋ฅผ ๋ง๋ ์ฌ๋)์ ์๋น์ค์ ์ค์ํ ๋ถ๋ถ์ ๋๋ฌ๋ด์ง ์์๋ ๋๋ค. ์๋ฅผ ๋ค์ด DB์ค๊ณ ๊ตฌ์กฐ๋ ๋๋ฌ๋ด๊ณ ์ถ์ง ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ด๋ธ ์ ๋ณด, ์๋ฒ์ ์์๊ฐ ๋ฑ์ ๋๋ฌ๋ด์ง ์๊ณ ๋๋ฌ๋ด๊ณ ์ถ์ ๋ถ๋ถ๋ง์ ๋๋ฌ๋ผ ์ ์๋ค.
2. ์ฌ์ฉ์๋ ํด๋น ์๋น์ค๊ฐ ์ด๋ป๊ฒ ๊ตฌํ๋๋ ์ง ์ ํ์์์ด ํ์ํ ์ ๋ณด๋ง์ ๋ฐ์ ์ ์๋ค.
3. OPEN API์ ๊ฒฝ์ฐ ์ฑ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ๋จ์ํ์ํค๊ณ ์๊ฐ๊ณผ ๋น์ฉ์ ์ ์ฝํ ์ ์๋ค.
- ๋ค์ด๋ฒ๋ก ๋ก๊ทธ์ธ, ์นด์นด์ค๋ก ๋ก๊ทธ์ธ
- ์ด๋ค ํํ์ด์ง ๋ค์ด๊ฐ๋ฉด ํ๋จ๋ถ์ ์นด์นด์ค ์ง๋ ๊ฐ์๊ฑฐ
์ด ๋๊ฐ์ง๊ฐ ๋ฐ๋ก open API๋ฅผ ์ฌ์ฉํ ๊ฒ
4. ์ ๊ณต์์ ๊ฒฝ์ฐ API๋ฅผ ๋ง๋ค๊ฒ ๋๋ฉด ๋ด๋ถ ํ๋ก์ธ์ค๊ฐ ์์ ๋์์ ๋ ๋งค๋ฒ ์์ ํ๋ ๊ฒ์ด ์๋ API๊ฐ ์์ ์ด ์๋๊ฒ๋ ๋ง๋ค ์ ์๋ค. ๋ํ ๋ด๋ถ๊ฐ ๋ณ๊ฒฝ์ด ๋์ด๋ ์ฌ์ฉ์์๊ฒ ์ํฅ์ ์ฃผ์ง ์๊ณ ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํฉ๋๋ค.
- API๋ ์ค๊ณ๊ณ์ธต์ด๋ผ๊ณ ํ๋ค. ๋ง์ฝ DB๊ฐ ์์ ์ด ๋ ๋๋ง๋ค
API๊ฐ ๋ณ๊ฒฝ์ด ๋๋ค๊ณ ํ๋ฉด ์ฆ์ ์ ํ ์ดํธ๊ฐ ๋ฐ์์ด ๋๊ฒ ์ฃ ? -> ์ข์ ๊ฒ์ด๋ผ๊ณ ๋งํ ์ ์์ -> ๊ทผ๋ฐ ์ด API๋ผ๋ ๊ฒ์ด ์๊ธฐ ๋๋ฌธ์ DB๊ฐ ๋ณ๊ฒฝ์ด ๋๋ ํ 10๋ฒ ? ๋๋ API๋ 1๋ฒ ๋ณ๊ฒฝ ์ด๋ฐ ์์ผ๋ก ๊ฐ๋ฅํ๋ค๋ ๊ฒ
์ฌ์ฉ์๋ ์์ ํ ์ง๋ฅผ ๋ชจ๋ฅด๊ฒ๋ ํ ์ ์๋ค!!
5. ์ ๊ณต์๋ ๋ฐ์ดํฐ๋ฅผ ํ ๊ณณ์ ๋ชจ์ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ํฐ๋์์ค24๋ผ๋ ์ฑ ์ ํ๋ ์ผํ๋ชฐ์ ๋ง๋ค์๋ค๊ณ ํฉ์๋ค.
ํด๋น ์ฌ์ดํธ์ ๋ฐฉ๋ฌธํ๋ ๋ฐฉ๋ฌธ์๊ฐ ์์ ๊ฒ๋๋ค.
๊ทธ ๋, ์ด๋ค ํน์ ํ ๊ฒ์ ํด๋ฆญํ๋ ์ฌ์ฉ์์ ๋ํ ์ด๋ฒคํธ๋ฅผ ์ง๊ณํ๊ณ ์ถ์ ๋
ํด๋น API๋ฅผ ๋ง๋ค๊ณ ํด๋น ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด ํด๋น API๋ฅผ ํธ์ถํ๊ฒ ๋ง๋ค๋ฉด
ํด๋น ๋ฐ์ดํฐ๋ฅผ ํ ๊ณณ์ ๋ชจ์ ์ ์์ต๋๋ค.
6. ์ ๊ณต์์ ๊ฒฝ์ฐ, API๋ฅผ ์ด์ฉํด ์ 3์๊ฐ ๋ง๋ค์ด๋ธ ์ฑ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์์งํ ์๋ ์๊ณ ,
ํด๋น ์๋น์ค๋ฅผ ํ์ฅํด ๋๊ฐ ์ ์์ผ๋ฉฐ ํ๋ณด์๋ ๋์์ด ๋ฉ๋๋ค.
- ์นด์นด์ค ๋ค์ด๋ฒ์ ๊ธฐ์ ํ๋ณด
- ํํ๊ณ _ ์ธ๊ณต์ง๋ฅ์ ํน์ฑ์ ๋ง์ ์ ๋ณด ํ์๋กํจ
API์ ์ข ๋ฅ
- private : ๋ด๋ถ์ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ์ฃผ๋ก ํด์ํค๋ฅผ ํ๋์ฝ๋ฉํด๋๊ณ ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ฒ์ ์๋ฒ๊ฐ์ ํต์ ํฉ๋๋ค. ์ด๋ ๋น์ฆ๋์ค ํํธ๋์๋ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. privateํ๊ฒ๋ ํด๋น ํํธ๋์ ํด์ํค๋ฅผ ๊ณต์ ํด ํต์ ํฉ๋๋ค.
(ํด์ํค๊ฐ ์์ด์ผ ํต์ ์ด ๊ฐ๋ฅํ๊ฒ ํจ)
- public : ๋ชจ๋ ์ฌ๋์ด ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ง์ ํธ๋ํฝ์ ๋ฐฉ์งํ๊ธฐ ์ํด ํ๋ฃจ ์์ฒญ ์์ ์ ํ, ๊ณ์ ๋น ๋ช๊ฐ ๋ฑ์ผ๋ก ๊ด๋ฆฌํฉ๋๋ค.