topic난이도 · 약 20

API — 프로그램끼리 대화하는 법

API 개념, REST API, HTTP 메서드, JSON 응답 — 프로그램 간 통신의 기본.

#API#REST#HTTP#JSON#GET#POST
왜 배우는가

날씨 앱은 기상청 데이터를 어떻게 가져올까? 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를 제공합니다.

REST API — GET·POST·PUT·DELETE 메서드와 URL 경로로 자원(Resource) CRUD
HTTP 메서드동작비유예시
GET조회 (읽기)메뉴판 보기`GET /api/users` — 사용자 목록 조회
POST생성 (쓰기)주문하기`POST /api/users` — 새 사용자 등록
PUT수정 (갱신)주문 변경`PUT /api/users/1` — 1번 사용자 정보 수정
DELETE삭제주문 취소`DELETE /api/users/1` — 1번 사용자 삭제
javascript
// 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 키를 전달한다.

javascript
// 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는 즉시 인증 문제라는 걸 파악합니다.

실기 드릴 2문항
edit실기 드릴 · 단답형

새로운 데이터를 생성할 때 사용하는 HTTP 메서드는?

edit실기 드릴 · 단답형

API 응답에서 404 상태 코드는 무엇을 의미하는가?