API = Application Programming Interface
= 프로그램끼리 대화하는 창구
손님 (클라이언트)
↓ 주문
웨이터 (API) ← API가 이 역할!
↓ 전달
주방 (서버/DB)
↓ 음식
웨이터 (API)
↓ 서빙
손님 (클라이언트)
손님은 주방에 직접 못 들어가고 웨이터를 통해서만 주문하듯이, 클라이언트는 API를 통해서만 서버에 요청해요!
카카오 로그인 버튼 클릭
↓
카카오 API 호출
↓
카카오 서버에서 인증
↓
로그인 완료
날씨 앱
↓
기상청 API 호출
↓
기상청 서버에서 날씨 데이터
↓
앱에 날씨 표시
요청 (Request)
──────────────
GET /todo/list/ ← 이 URL로 요청
↓
서버에서 처리
↓
응답 (Response)
──────────────
{
"todos": [
{"id": 1, "name": "공부하기"},
{"id": 2, "name": "운동하기"}
]
} ← JSON 형태로 응답
| 메서드 | 의미 | 예시 |
|---|---|---|
GET | 데이터 조회 | 할일 목록 보기 |
POST | 데이터 생성 | 새 할일 추가 |
PUT | 데이터 전체 수정 | 할일 전체 변경 |
PATCH | 데이터 일부 수정 | 완료 여부만 변경 |
DELETE | 데이터 삭제 | 할일 삭제 |
일반 Django DRF (API)
─────────────────────────────────────
HTML 페이지 반환 → JSON 데이터 반환
브라우저만 사용 → 앱, 웹 어디서든 사용
화면+데이터 같이 → 데이터만 주고받음
GET /todo/list/ → 할일 전체 조회
POST /todo/create/ → 새 할일 생성
PATCH /todo/1/update/ → 1번 할일 수정
DELETE /todo/1/delete/ → 1번 할일 삭제
쉽게 말해 "프로그램끼리 데이터를 주고받는 약속된 방법" 이에요! 😊