API (Application Programming Interface)
1. ๊ฐ๋
API๋ ์์ฉ ํ๋ก๊ทธ๋จ ๊ฐ ์ํธ์์ฉ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ์ธํฐํ์ด์ค๋ฅผ ์๋ฏธํจ.
์ฆ, ํ ํ๋ก๊ทธ๋จ์ด ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ ๊ธฐ๋ฅ์ด๋ ๋ฐ์ดํฐ๋ฅผ ์ ํด์ง ๋ฐฉ์์ผ๋ก ์์ฒญํ๊ณ ์๋ต๋ฐ๊ธฐ ์ํ ๊ท์ฝ(Protocol) ์.
์๋ก ๋ค๋ฅธ ์์คํ ๊ฐ ํต์ ์ ๋จ์ํํ๊ณ , ๊ธฐ๋ฅ์ ์ฌ์ฌ์ฉํ ์ ์๋๋ก ์ค๊ณ๋จ.
2. ํน์ง
- ํ๋ก๊ทธ๋จ ๊ฐ ๋ฐ์ดํฐ ๊ตํ ๋ฐ ๊ธฐ๋ฅ ํธ์ถ์ ํ์คํํจ
- ๋ด๋ถ ๋ก์ง์ ์จ๊ธฐ๊ณ , ํ์ํ ๊ธฐ๋ฅ๋ง ์ธ๋ถ์ ๊ณต๊ฐํจ (์บก์ํ ๊ฐ๋ ๊ณผ ์ ์ฌ)
- ํ๋ซํผ๊ณผ ์ธ์ด์ ๋ ๋ฆฝ์ ์ผ๋ก ๋์ํจ
- JSON, XML ๋ฑ์ ํตํด ๋ฐ์ดํฐ ์ ๋ฌ
- ์์ฒญ(Request)๊ณผ ์๋ต(Response) ๊ตฌ์กฐ๋ก ๋์
3. ๊ตฌ์ฑ ์์
| ๊ตฌ์ฑ ์์ | ์ค๋ช |
| Endpoint | API๊ฐ ์์ฒญ์ ๋ฐ๋ URL ์ฃผ์ |
| Method | ๋์์ ์ ์ํ๋ ๋ฐฉ์ (GET, POST, PUT, DELETE ๋ฑ) |
| Header | ์์ฒญ/์๋ต์ ๋ถ๊ฐ ์ ๋ณด (Content-Type, ์ธ์ฆ ํ ํฐ ๋ฑ) |
| Body | ์ค์ ์ ๋ฌ๋๋ ๋ฐ์ดํฐ (๋ณดํต JSON ํํ) |
| Status Code | ์์ฒญ ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋ด๋ ์ฝ๋ (200, 404, 500 ๋ฑ) |
4. ๋์ ์๋ฆฌ ์์
์์ฒญ → ์ฒ๋ฆฌ → ์๋ต ํ๋ฆ
GET /api/users/1
Response:
{
"id": 1,
"name": "Hyebin",
"role": "Backend Developer"
}
5. API ์ข ๋ฅ
| ๊ตฌ๋ถ | ์ค๋ช | ์์ |
| Open API | ์ธ๋ถ ๊ฐ๋ฐ์์๊ฒ ๊ณต๊ฐ๋ API | ์นด์นด์ค๋งต API, ๋ค์ด๋ฒ ๋ก๊ทธ์ธ API |
| Private API | ๋ด๋ถ ์์คํ ๊ฐ ํต์ ์ฉ | ์ฌ๋ด ๊ฒฐ์ ์์คํ , ์ธ์ฆ ์๋ฒ API |
| Partner API | ํน์ ํํธ๋ ๊ธฐ์ ์๊ฒ๋ง ์ ๊ณต | ๊ฒฐ์ ๋ํ์ฌ API, ๋ฌผ๋ฅ ์ฐ๋ API |
6. REST API
REST (Representational State Transfer) ๋ ์น ๊ธฐ๋ฐ ์์คํ ์์ ๊ฐ์ฅ ๋๋ฆฌ ์ฐ์ด๋ API ์ํคํ ์ฒ ์คํ์ผ๋ก,
๋ฆฌ์์ค ์ค์ฌ์ URL ์ค๊ณ์ HTTP ํ์ค ๋ฉ์๋(GET, POST, PUT, DELETE) ๋ฅผ ์ฌ์ฉํจ.
ํน์ง ์์ฝ
- ์์(Resource)์ URI๋ก ํํ (/users, /posts)
- ์ํ(STATE)๋ฅผ ํฌํจํ์ง ์๋ ๋ฌด์ํ(Stateless) ๊ตฌ์กฐ
- ์์ฒญ ๋ฐฉ์์ ๋ฐ๋ผ CRUD ๋์ ์ํ
- ์๋ต์ ์ผ๋ฐ์ ์ผ๋ก JSON ํ์ ์ฌ์ฉ
| Method | ์ญํ | ์์ |
| GET | ๋ฐ์ดํฐ ์กฐํ | /users |
| POST | ๋ฐ์ดํฐ ์์ฑ | /users |
| PUT | ๋ฐ์ดํฐ ์์ | /users/1 |
| DELETE | ๋ฐ์ดํฐ ์ญ์ | /users/1 |
7. API ํต์ ์์ (Client ↔ Server)
- ํด๋ผ์ด์ธํธ๊ฐ ํน์ URL๋ก ์์ฒญ ๋ณด๋ (GET /api/users)
- ์๋ฒ๊ฐ ์์ฒญ์ ๋ฐ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ
- ์๋ฒ๊ฐ ๊ฒฐ๊ณผ๋ฅผ JSON์ผ๋ก ์๋ต (200 OK)
- ํด๋ผ์ด์ธํธ๊ฐ ์๋ต ๋ฐ์ดํฐ๋ฅผ ํ๋ฉด์ ํ์
8. ๋ฉด์ ํฌ์ธํธ ์ ๋ฆฌ
- API๋ ์์คํ ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํ ์ธํฐํ์ด์ค
- ๋ด๋ถ ๋ก์ง์ ์จ๊ธฐ๊ณ ํ์ํ ๊ธฐ๋ฅ๋ง ์ธ๋ถ์ ์ ๊ณต (์บก์ํ)
- REST API๋ HTTP ๊ธฐ๋ฐ์ ๊ฐ์ฅ ๋ณดํธ์ ์ธ ์ํคํ ์ฒ ์คํ์ผ
- REST API ์ค๊ณ ์ ์์ ์ค์ฌ, ๋ช ํํ URI, ์ผ๊ด๋ ๊ท์น์ด ์ค์
- ์๋ต ๋ฐ์ดํฐ๋ ๋๋ถ๋ถ JSON ํฌ๋งท์ผ๋ก ์ ๋ฌ
- ์ํ ์ฝ๋๋ฅผ ํตํด ์์ฒญ ์ฑ๊ณต/์คํจ ์ฌ๋ถ๋ฅผ ๋ช ํํ ์ ๋ฌ
ํต์ฌ ์์ฝ
API๋ ์๋ก ๋ค๋ฅธ ์์คํ ๊ฐ์ ์ํต์ ์ํ ๊ท์ฝ์ด๋ฉฐ,
REST API๋ HTTP ๊ธฐ๋ฐ์ ๋ํ์ ์ธ ์ค๊ณ ๋ฐฉ์์ผ๋ก,
์์ฒญ-์๋ต ๊ตฌ์กฐ์ JSON ๋ฐ์ดํฐ ๊ตํ์ ํตํด ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ฅผ ์ฐ๊ฒฐํจ.
'๐ Computer Science > ETC' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| XML (0) | 2025.10.29 |
|---|---|
| JSON (0) | 2025.10.29 |