API — 프로그램끼리 대화하는 법
API 개념, REST API, HTTP 메서드, JSON 응답 — 프로그램 간 통신의 기본.
날씨 앱은 기상청 데이터를 어떻게 가져올까? ChatGPT는 어떻게 답변을 돌려줄까? 모두 API 덕분이다. AI 시대에 API를 이해하지 못하면 어떤 서비스도 연동할 수 없다.
API는 레스토랑의 웨이터입니다. 당신(클라이언트)은 주방(서버)에 직접 들어갈 수 없습니다. 대신 웨이터(API)에게 메뉴판을 보고 주문합니다. 웨이터가 주방에 전달하고, 요리가 나오면 당신에게 가져다줍니다. API = Application Programming Interface, 프로그램이 다른 프로그램과 소통하는 약속된 규격입니다.
REST API — 현재 가장 널리 쓰이는 API 설계 스타일입니다. 핵심 원칙은 단순합니다: 1. URL로 자원(Resource)을 지정한다 → `/api/users`, `/api/posts/1` 2. HTTP 메서드로 동작을 정한다 → GET(조회), POST(생성), PUT(수정), DELETE(삭제) 3. JSON으로 데이터를 주고받는다 OpenAI, Google, 카카오, 네이버 — 거의 모든 서비스가 REST API를 제공합니다.
| HTTP 메서드 | 동작 | 비유 | 예시 |
|---|---|---|---|
| GET | 조회 (읽기) | 메뉴판 보기 | `GET /api/users` — 사용자 목록 조회 |
| POST | 생성 (쓰기) | 주문하기 | `POST /api/users` — 새 사용자 등록 |
| PUT | 수정 (갱신) | 주문 변경 | `PUT /api/users/1` — 1번 사용자 정보 수정 |
| DELETE | 삭제 | 주문 취소 | `DELETE /api/users/1` — 1번 사용자 삭제 |
// REST API 호출 예시 — fetch로 사용자 목록 가져오기
const response = await fetch("https://api.example.com/users", {
method: "GET",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY" // 인증 토큰
}
});
const data = await response.json();
console.log(data);
// → [{ "id": 1, "name": "짓친", "email": "jit@example.com" }, ...]fetch()로 GET 요청을 보내고 JSON 응답을 받는 기본 패턴. Authorization 헤더로 API 키를 전달한다.
// POST 요청 — 새 데이터 생성하기
const response = await fetch("https://api.example.com/users", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
name: "새로운 사용자",
email: "new@example.com"
})
});
// JSON 응답 예시
// {
// "id": 42,
// "name": "새로운 사용자",
// "email": "new@example.com",
// "createdAt": "2026-04-12T09:00:00Z"
// }POST 요청 시 body에 생성할 데이터를 JSON으로 담아 보낸다. 서버는 생성된 결과를 JSON으로 응답한다.
상태 코드(Status Code) — 서버의 응답 결과를 숫자로 알려줍니다. - 200 — 성공 (요리가 잘 나왔습니다) - 201 — 생성 성공 (POST 요청 후 새 자원이 만들어짐) - 400 — 잘못된 요청 (주문서를 잘못 적었습니다) - 401 — 인증 실패 (회원카드가 없습니다) - 404 — 찾을 수 없음 (그런 메뉴는 없습니다) - 500 — 서버 오류 (주방에 불이 났습니다) Claude Code에게 "API 호출했는데 401이 떠"라고 말하면, Claude는 즉시 인증 문제라는 걸 파악합니다.
새로운 데이터를 생성할 때 사용하는 HTTP 메서드는?
API 응답에서 404 상태 코드는 무엇을 의미하는가?