Choorai

HTTP/API 기초

프론트엔드와 백엔드가 어떻게 대화하는지, 실무에서 자주 보는 용어를 빠르게 이해합니다.

핵심 5개

  • Endpoint: API가 요청을 받는 URL 경로
  • Method: GET/POST/PUT/DELETE 같은 요청 동작
  • Request/Response: 요청 데이터와 응답 데이터
  • Status Code: 200, 400, 500 등 처리 결과 숫자
  • JSON: 데이터 교환 형식

요청 1번의 실제 흐름

  1. 브라우저에서 /api/v1/todos로 요청
  2. 서버가 인증/검증 후 비즈니스 로직 실행
  3. 서버가 상태코드 + JSON으로 응답
  4. 프론트엔드가 응답을 해석해 화면 업데이트

상태코드 빠른 해석

  • 200: 조회/수정 성공
  • 201: 생성 성공
  • 204: 성공했지만 본문 없음
  • 400: 잘못된 요청 형식
  • 401/403: 인증/권한 문제
  • 404: 경로 또는 리소스 없음
  • 500: 서버 내부 오류

실전 예시: 조회와 생성

터미널 (curl)
# 목록 조회
curl -X GET http://localhost:8000/api/v1/todos

# 항목 생성
curl -X POST http://localhost:8000/api/v1/todos \
  -H "Content-Type: application/json" \
  -d '{"title":"문서 보강"}'

실전 예시: 프론트에서 호출

frontend/api.ts
export async function fetchTodos() {
  const res = await fetch('/api/v1/todos');
  if (!res.ok) throw new Error('요청 실패');
  return res.json();
}

export async function createTodo(title: string) {
  const res = await fetch('/api/v1/todos', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ title }),
  });
  if (!res.ok) throw new Error('생성 실패');
  return res.json();
}

60분 챌린지에서 쓰는 지점

초심자 실수 TOP 3

  • 경로를 /api/todo vs /api/todos처럼 다르게 호출
  • Content-Type: application/json 헤더 누락
  • 에러 상태코드인데도 무조건 res.json()만 호출

디버깅 체크리스트

  • 브라우저 네트워크 탭에서 URL/Method/Status를 먼저 확인
  • 요청 본문(JSON)과 서버 스키마가 일치하는지 확인
  • CORS 에러라면 CORS 기초로 이동
  • 실전 에러 해결은 트러블슈팅 참고

마지막 업데이트: 2026년 2월 22일 · 버전: v0.0.1

피드백 보내기

입력한 내용으로 새 이슈 페이지를 엽니다.

GitHub 이슈로 보내기