27일차 #100DaysOfCode — REST API

발행: (2026년 3월 1일 오전 09:06 GMT+9)
6 분 소요
원문: Dev.to

Source: Dev.to

REST API란 무엇인가요?

REST API를 레스토랑의 웨이터에 비유해 보세요:

  • 당신(클라이언트/앱)이 음식을 요청합니다.
  • 주방(서버/데이터베이스)이 음식을 준비합니다.
  • 웨이터(REST API)가 요청을 받아 전달하고 결과를 가져옵니다.

주방에 직접 들어가지 않으며, 오직 웨이터를 통해서만 — 표준화되고 합의된 문구를 사용해 소통합니다.

그렇다면 REST란 무엇인가요?

**REST(Representational State Transfer)**는 두 애플리케이션이 인터넷을 통해 통신할 수 있게 하는 일련의 규칙입니다. 클라이언트는 표준 HTTP 메서드를 사용해 서버와 대화하고 데이터를 가져오거나 변경합니다.

REST API의 핵심 HTTP 메서드

Method목적
GET데이터 조회
POST새 데이터 생성
PUT기존 리소스를 전체 교체
PATCH기존 리소스의 일부 업데이트
DELETE리소스 삭제

REST API의 실제 예시

날씨 앱이 로드될 때, 다음과 같은 요청을 보낼 수 있습니다:

GET https://api.weather.com/city=karachi

서버는 JSON 데이터로 응답합니다:

{
  "city": "Karachi",
  "temperature": "31°C",
  "condition": "Sunny"
}

앱이 날씨를 표시합니다 — API 덕분이죠.

REST에서 “리소스”란 무엇인가요?

리소스는 API가 다루는 데이터 조각을 의미합니다.

예시

  • 사용자
  • 게시물
  • 제품
  • 주문

각 리소스는 고유한 URL(엔드포인트라고도 함)을 가집니다:

/users
/posts
/products

RESTful 라우트 명명 규칙

REST는 동사가 아닌 명사에 초점을 맞춥니다.

올바른 RESTful 라우트

전체 사용자 조회

GET /users

사용자 생성

POST /users

단일 사용자 조회

GET /users/:id

사용자 업데이트

PUT /users/:id
PATCH /users/:id

사용자 삭제

DELETE /users/:id

잘못된 라우트 명명 (하지 말아야 할 예시)

POST /createUser
GET /getAllUsers
DELETE /deleteUser

이들은 URL에 동사를 사용하므로 REST 규칙에 어긋납니다.

REST API의 쿼리 파라미터

쿼리 파라미터는 결과를 필터링, 검색 또는 맞춤화할 수 있게 해줍니다.

GET /users?role=admin
GET /products?limit=10&page=2
GET /posts?sort=latest

요청 및 응답 구조

요청

  • params – URL 내부의 값(예: /users/:id)
  • query – 필터링/페이지네이션(예: ?page=2)
  • body – POST/PUT/PATCH 요청에 사용되는 데이터
  • headers – 메타데이터(인증 토큰, content‑type 등)

응답

  • status code
  • JSON body
  • headers
  • optional metadata (페이지네이션 정보, 타임스탬프 등)

일반적인 REST API 상태 코드

성공

  • 200 OK – 요청 성공
  • 201 Created – 새 리소스 생성
  • 204 No Content – 성공했지만 응답 본문 없음

클라이언트 오류

  • 400 Bad Request – 잘못된 입력
  • 401 Unauthorized – 인증 필요
  • 403 Forbidden – 인증은 되었지만 권한 없음
  • 404 Not Found – 리소스를 찾을 수 없음

서버 오류

  • 500 Internal Server Error – 서버 내부 오류

REST에서 멱등성

“멱등(Idempotent)”은 동일한 요청을 여러 번 보내도 결과가 동일함을 의미합니다.

Method멱등성?이유
GET✔️ Yes데이터를 조회해도 아무것도 변경되지 않음
PUT✔️ Yes매번 같은 데이터로 리소스를 교체함
DELETE✔️ Yes다시 삭제해도 상태가 변하지 않음
PATCH⚠️ Sometimes백엔드가 부분 업데이트를 어떻게 처리하느냐에 따라 다름
POST❌ No새 리소스를 생성 → 중복 발생

최종 요약

REST API는 앱과 서버 사이의 메신저 역할을 합니다. 표준 HTTP 메서드를 사용해 데이터를 생성, 조회, 업데이트, 삭제할 수 있습니다. 다음을 이해한다면:

  • 리소스
  • 라우트
  • 동사 (GET, POST, PUT, DELETE)
  • 쿼리 파라미터
  • 상태 코드
  • 멱등성

…이미 REST API의 핵심을 파악한 것입니다.

코딩 즐겁게 하세요!

0 조회
Back to Blog

관련 글

더 보기 »

현대 웹 앱에서 OTP 인증 시작하기

왜 OTP 인증이 중요한가 - 로그인 또는 회원가입 시 사용자 신원을 확인합니다 - 가짜 계정 생성을 방지합니다 - 추가적인 보안 계층을 제공합니다 - 일반적으로 사용됩니다