ํด๋น ์ ์ฒด์ API๋ฅผ ์จ์ ๊ฐ์ ๊ฐ์ง๊ณ ์์ผ ํ๊ณ , ๊ธฐ์กด ๋ฐ์ดํฐ๋ ๋ง์ด๊ทธ๋ ์ด์ ํด์ผ ํฉ๋๋ค.
๐ API
Application Programming Interface ์ ์ฝ์.
1. ํ๋ก๊ทธ๋จ๋ค์ด ์๋ก ํต์ ํ๊ฑฐ๋ ์ํธ์์ฉ ํ ์ ์๋๋ก ๋์์ฃผ๋ ๋งค๊ฐ์ฒด์ด์ ์ฝ์์ด๋ค.
2. ์์ฉํ๋ก๊ทธ๋จ์์ ์ฌ์ฉํ ์ ์๋๋ก ์ด์์ฒด์ , ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ ์ ์ดํ ์ ์๊ฒ ๋ง๋ ์ธํฐํ์ด์ค
ex ) ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ค๋ ์ง, ํธ์ถํ๋ค๋ ์ง, ๊ธฐ๋ฅ์ ์ํ ํ ์ฌ์ฉํ๋๋ก ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ ๊ฒ.
Open API ( Open Application Programming Interface ) | ๋๊ตฌ๋ ์ฌ์ฉํ ์ ์๋๋ก ๊ณต๊ฐ๋ API |
์ฝ๊ฒ ์ค๋ช ํด์ค
API | ์๋น์ ๋ฉ๋ดํ |
๊ณ ๊ฐ๊ณผ ์ฃผ๋ฐฉ์ ์ด์ด์ฃผ๋ ์ญํ ์ ํ๋ ๊ฒ์ด ๋ฉ๋ดํ์ด๋ฉฐ, ๊ณ ๊ฐ์ ๋ฉ๋ดํ ์ฌ์ฉ๋ฒ๋ง ์ ์ตํ์ ์ฌ์ฉํ๋ฉด ๋๋ค.
๋ง์ฝ ์๋ฐ์ ์ฒด์ ์์ฝ๊ด๋ฆฌ ํ๋ก๊ทธ๋จ์ ๋ง๋ ๋ค๋ฉด?
1. ์๋ฐ ์ ์ฒด๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ทจํฉ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์ถ. |
2. ์ธ๋ถ์ ์๋น์คํ ๋ (1) ์ง์ ์ ์ธ ๋ฐ์ดํฐ ์ ๋ฌ & (2) DB ์ง์ ์ ๊ทผ & (3) API ๋ฐฉ์์ผ๋ก ์ด์ฉ ๋ฑ์ ํตํด์ ์ฒ๋ฆฌ. |
๐ค ํ๋ก๊ทธ๋จ์์ API๋ฅผ ์ ์ํ๋ฉด ๋ญ๊ฐ ์ข์๊ฐ?
โ client ํ๋ก๊ทธ๋จ์ ์ํตํ ํ๋ก๊ทธ๋จ์ด ์ด๋ค ํ๋ก๊ทธ๋จ์ธ์ง, ๊ตฌํ์ด ์ด๋ป๊ฒ ๋์ด์๋์ง ์ ๊ฒฝ์ฐ์ง ์๊ณ ์ฝ์๋ API๋ง ์ฌ์ฉํ๋ฉด ์ํต์ด ๊ฐ๋ฅํ๋ค.
API๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ, ์ด๋ฏธ ์ฝ์๋ ๋ด์ฉ์ด๊ธฐ ๋๋ฌธ์ ์๋๋ฐฉ์ด ๋๊ตฌ๋ ์๊ด์์ด API๋ง ํธ์ถํ๋ฉด ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์๋ค.
โ ๊ณตํต๋ ๋ก์ง์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ค.
ํ๋์ ํ๋ก๊ทธ๋จ๊ณผ ์ํตํ๋ ์ฌ๋ฌ client ํ๋ก๊ทธ๋จ์ด ์์ ๊ฒฝ์ฐ ๊ฐ๊ฐ์ client์์ ๋๊ฐ์ ๋ก์ง์ ๋ค๊ณ ์๋ ๊ฒ๋ณด๋จ ํ๋์ ํ๋ก๊ทธ๋จ์์ ๊ณตํต๋ ๋ก์ง์ ์ ๊ณตํด์ฃผ๋ ๊ฒ์ด ํจ์จ์ , ์ ์ง๋ณด์์ ์ผ๋ก ํธ๋ฆฌํ๋ค.
โ ์ ์ง ๋ณด์ ๋ฐ ํ์ฅ ์ฉ์ด
HTTP ์ ๊ฐ์ ๋ฒ์ฉ ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋ API์ ๊ฒฝ์ฐ ์น, ์๋๋ก์ด๋, IOS ํ๊ฒฝ์์ ๋์ผํ API๋ฅผ ์ฌ์ฉํ ์ ์์ด์ ์๋ก ๋ค๋ฅธ ํ๊ฒฝ์์ ๋์ผํ ๊ธฐ๋ฅ ๊ตฌํ์ด ๊ฐํธ.
Note!
HTTP ํ๋กํ ์ฝ์ด๋?
HTTP ( Hypertext Transfer Protocol ) ๋ ํต์ ํ๋กํ ์ฝ์ด๋ค.
์น์์๋ ๋ธ๋ผ์ฐ์ ์ ์๋ฒ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํ ๋ฐฉ์์ผ๋ก HTTP ํ๋กํ ์ฝ์ ์ฌ์ฉํ๊ณ ์๋ค.
ํ๋กํ ์ฝ ์ํธ ๊ฐ์ ์ ์ํ ๊ท์น์ ์๋ฏธ.
ํน์ ๊ธฐ๊ธฐ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํด ์ ์.
๋ง์ฝ API์ ๋ฒ๊ทธ๊ฐ ์๊ฑฐ๋ ๊ฐ์ ํด์ผ ํ๋ค๋ฉด?
API๋ฅผ ์ ๊ณตํ๋ ํ๋ก๊ทธ๋จ๋ง ์์ ํ๋ฉด ๋๋ค.
๐ค ์น API ์ ์ข ๋ฅ
์น API | ์ธํฐ๋ท์ ํตํด ๋ณํฉ๋ ์ปดํจํฐ๋ค ๊ฐ์ ํต์ ์ ์ฌ์ฉํ๋ API. ์ดํ์ด๋ ์น์ฌ์ดํธ์์ ์ฌ์ฉํ๋ค. |
์น API์ ๊ฒฝ์ฐ API๋ฅผ ์ ์ํ๋ ์๊ธฐ์ ์ด์ ์ ๋ฐ๋ผ ๋ค์๊ณผ ๊ฐ์ ์ข ๋ฅ๋ก ๋๋์ด์ง๋ค.
SOAP API | ๋จ์ ๊ฐ์ฒด ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋ค. ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ XML์ ์ฌ์ฉํ์ฌ ๋ฉ์์ง๋ฅผ ๊ตํ. ์ ์ฐ์ฑ์ด ๋จ์ด์ง๋ API ( ๊ณผ๊ฑฐ์ ๋ง์ด ์ฌ์ฉ ) |
RPC API | ์๊ฒฉ ํ๋ก์์ ํธ์ถ. ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์์ ํจ์๋ ํ๋ก์์ ๋ฅผ ์๋ฃํ๋ฉด ์๋ฒ๊ฐ ์ถ๋ ฅ์ ํด๋ผ์ด์ธํธ๋ก ๋ค์ ์ ์ก. |
Websocket API | JSON ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌ. ํด๋ผ์ด์ธํธ ์ฑ๊ณผ ์๋ฒ ๊ฐ์ ์๋ฐฉํฅ ํต์ ์ ์ง์. REST API๋ณด๋ค ํจ์จ์ ์ด๋ค. -> ์๋ฒ๊ฐ ์ฐ๊ฒฐ๋ ํด๋ผ์ด์ธํธ์ ์ฝ๋ฐฑ ๋ฉ์์ง๋ฅผ ์ ์กํ ์ ์๊ธฐ ๋๋ฌธ. |
REST API | ์น์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ API. ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์์ฒญ์ ๋ฐ์ดํฐ๋ก ์ ์ก. ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ ์ ๋ ฅ์ ์ฌ์ฉํ์ฌ ๋ด๋ถ ํจ์๋ฅผ ์์ํ๊ณ ์ถ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๋ค์ ํด๋ผ์ด์ธํธ์ ๋ฐํ. |
๐ค API ์ฅ์
1. API ํ์คํ
API๋ ์ํธ์์ฉ์ ํน์ ๊ธฐ๊ธฐ๋ OS์ ์ข ์๋๋๋ก ๊ตฌํํ์ง ์์ผ๋ฏ๋ก, ๊ธฐ๊ธฐ๋ OS์ ์๊ด์์ด ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์ ๊ทผํ์ฌ ์ฌ์ฉํ๋ค.
2. API๋ฅผ ์ด์ฉํ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ๋ฐ ์ฌ๋ฌ ์๋น์ค ๊ธฐํ์ ์ฐฝ์ถ
API๋ฅผ ์ด์ฉํ๋ฉด ๊ณต๊ณต ๋ฐ์ดํฐ ๋ฐ ์คํ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ์ฌ ๊ณ ๊ฐ์ด ์ํ๋ ์ ๋ณด๋ง์ ํผ ๋์์ธํ์ฌ ์๋น์คํ ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๋ฌ ๋น์ฆ๋์ค ๊ธฐํ์ ํ ์ ์๋ค.
๐ ๋ง์ด๊ทธ๋ ์ด์ ( Migration )
โ ํ ์ด์ํ๊ฒฝ์์ ๋ค๋ฅธ ์ด์ํ๊ฒฝ์ผ๋ก ์ฎ๊ฒจ๊ฐ๋ ๊ณผ์ .
ํ ์ข ๋ฅ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ค๋ฅธ ์ข ๋ฅ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ฎ๊ธฐ๋ ๊ฒฝ์ฐ๋ ํฌํจ๋๋ค.
๋ง์ด๊ทธ๋ ์ด์ ์ ๋ณดํต DB๋ง์ด๊ทธ๋ ์ด์ ์ ๋งํ๊ธฐ๋ ํ๋ค.
ํน์ ํ๋ก์ ํธ๋ก ์ธํด์ DB์คํค๋ง๊ฐ ๋ณ๊ฒฝ๋์์ ๋ ๊ธฐ์กด ๊ธฐ๋ฅ์ ์ ์งํ๊ธฐ ์ํด ๋ง์ด๊ทธ๋ ์ด์ ์ ํ๋ค.
Note!
DB ์คํค๋ง ( DB schema ) ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์๋ฃ์ ๊ตฌ์กฐ, ์๋ฃ์ ํํ๋ฐฉ๋ฒ, ์๋ฃ ๊ฐ์ ๊ด๊ณ๋ฅผ ํ์ ์ธ์ด๋ก ์ ์ํ ๊ตฌ์กฐ.
ex ) ์ค๋ช ์์
ํน์ ํ๋ก์ ํธ๋ก ์ธํด A ๊ธฐ๋ฅ ์ฌ์ฉ ์ ์ ์ฅ๋๋ DB๊ฐ ๋ณ๊ฒฝ.
- ( ๋ณ๊ฒฝ ์ ) A๊ธฐ๋ฅ ์ฌ์ฉ ์ DB์ 1๋ก ์ ์ฅ๋จ.
- ( ๋ณ๊ฒฝ ํ ) A ๊ธฐ๋ฅ ์ฌ์ฉ ์ DB์ A๋ก ์ ์ฅ๋จ.
DB์์ 1 -> A๋ก ๋ฐ๊พธ๋ ์์ ์ ํด์ผํ๋ค.
์ด๋ฌํ ๊ฒฝ์ฐ๋ฅผ DB ๋ง์ด๊ทธ๋ ์ด์ ์์ ์ด๋ผ๊ณ ํ๋ค.
- API ์ ๋ํ ์ค๋ช
์ด์์ผ / API ๊ฐ ๋ญ๊ฐ์ | ์ปค๋ฆฌ์ด๋ฆฌ
๋ช์ผ์ ๋น๊ฐ๋ฐ์ ์ง์ธ๋ถ๊ป API ๊ฐ ๋ฌด์์ด๋๋ ์ง๋ฌธ์ ๋ฐ์ ์ค๋ช ์ ํด๋๋ ธ๋๋ฐ ์ปค๋ฆฌ์ด๋ฆฌ์์๋ ๊ถ๊ธํดํ์ค ๋ถ๋ค์ด...
careerly.co.kr
๊ณต๊ณต ๋ฐ์ดํฐ (์คํ ๋ฐ์ดํฐ) API ์ ๋๋ก ๋ฐฐ์ฐ๊ธฐ Part.1 - ์ธํ๋ฐ | ๊ฐ์
๊ณต๊ณต ๋ฐ์ดํฐ ํฌํธ์์ ์ ๊ณตํ๋ ๋ค์ํ ์คํ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ์ด๋ป๊ฒ ํธ์ถํ๊ณ , ํธ์ถ๋ ๊ฒฐ๊ณผ๋ก ์ ๊ณต๋ฐ๋ JSON ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฉํ ์ ์๋์ง์ ๋ํด์ ๋ค์ํ ์ธ์ด๋ก ํ
www.inflearn.com
- HTTP ํ๋กํ ์ฝ ์ค๋ช
ํ๋ฐํธ์๋ ๊ฐ๋ฐ์๊ฐ ์์์ผํ๋ HTTP ํ๋กํ ์ฝ Part 1
API ๋ฐ์ดํฐ ์์ฒญ์ ์ํด ๊ผญ ์์์ผ ํ๋ HTTP ํ๋กํ ์ฝ์ ์ ์, HTTP Status Code, HTTP Methods ๋ฑ
joshua1988.github.io
- API & ๋ง์ด๊ทธ๋ ์ด์ ์ค๋ช
์์๋๋ฉด ์ข์ ๊ฐ๋ฐ์ฉ์ด 8 (API, ๋ง์ด๊ทธ๋ ์ด์ )
๋ฉฐ์น ์ ์์ํ ํ๋ก์ ํธ ํ์์์๋ "ํด๋น ์ ์ฒด์ API๋ฅผ ์จ์ ๊ฐ์ ๊ฐ์ง๊ณ ์์ผ ํ๊ณ , ๊ธฐ์กด ๋ฐ์ดํฐ๋ ๋ง์ด๊ทธ๋ ์ด์ ํด์ผ ํฉ๋๋ค. " ๋ผ๋ ์ด์ผ๊ธฐ๋ฅผ ๋ค์์ต๋๋ค. API (Application Programming Interface) ์์ฉ
reinvite.tistory.com