RESTful API는 웹 서비스 설계의 표준으로, 일관성 있고 확장성 높은 시스템을 구축할 수 있게 해주는 아키텍처 스타일입니다. HTTP 메서드와 URI를 활용해 자원을 명확히 표현하고, 상태 비저장성과 캐싱을 통해 효율적인 통신을 지원합니다.


REST

REST(Representational State Transfer)는 웹 아키텍처 스타일로, 리소스를 중심으로 설계된 분산 시스템의 원칙과 제약 조건을 정의합니다

  • 자원은 명사, 소문자 복수형으로 URI에 표현
  • 행위는 HTTP 메서드로 구분
  • URI는 계층적 구조로 설계
  • 서버는 클라이언트 상태를 저장하지 않으며, 각 요청은 독립적으로 처리
  • HTTP 캐시를 활용해 성능을 최적화
Action HTTP Method URI Description
List GET /items 아이템 목록 조회
Get GET /items/123 특정 아이템 조회
Create POST /items 아이템 생성
Update PUT /items/123 아이템 전체 수정
Patch PATCH /items/123 아이템 일부 수정
Delete DELETE /items/123 아이템 삭제

Status Code

Status Code는 RESTful API에서 클라이언트에게 요청 처리 결과를 명확히 전달하는 데 사용됩니다. 주요 HTTP 상태 코드는 다음과 같습니다.

Code Meaning Description
200 OK 성공적으로 처리됨
201 Created 새 리소스 생성 성공
204 No Content 성공(응답 본문 없음)
400 Bad Request 잘못된 요청(파라미터 오류 등)
401 Unauthorized 인증 필요
403 Forbidden 권한 없음
404 Not Found 자원 없음
409 Conflict 중복 데이터 등 충돌
422 Unprocessable Entity 유효성 검사 실패
500 Internal Server Error 서버 오류

Request

Request는 클라이언트가 서버에 보내는 HTTP 요청입니다. GET, POST, PUT, PATCH, DELETE 등의 메서드를 사용하여 특정 자원에 대한 행위를 지시합니다. 요청에는 URI, 헤더 등이 포함됩니다.

GET /items/123 HTTP/1.1
Host: api.example.com
Authorization: Bearer <token>

Response

Response는 서버가 클라이언트의 요청에 대해 보내는 HTTP 응답입니다. 상태 코드, 헤더, 본문으로 구성되며, 요청 처리 결과와 데이터를 포함합니다.

{
  "id": 123,
  "name": "leewr9",
  "email": "leewr9@gmail.com",
  "created_at": "2025-11-15T12:34:56Z"
}

Reference