2026-01-15

REST (Representational State Transfer)

REST API란?

URL은 자원, 동작은 HTTP 메서드

REST

  • 자원을 URI로 표현하고, HTTP 메서드로 행위를 표현하는 API 설계 방식
  • URI를 통해 자원을 명시하고, HTTP Method를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것

REST 구성

1. 자원(Resource)

  • URL로 표현
    • /users
    • /users/1

2. HTTP 메서드 (행위 표현)

| 메서드 | 의미 | 예시 | | — | — | — | | GET | 조회 | 사용자 목록 조회 | | POST | 생성 | 사용자 생성 | | PUT | 전체 수정 | 사용자 전체 수정 | | PATCH | 부분 수정 | 사용자 일부 수정 | | DELETE | 삭제 | 사용자 삭제 |

  • PUT과 PATCH의 차이
    • PUT: 자원 전체를 교체
    • PATCH: 자원의 일부만 수정

3. 표현(Representation)

  • 자원은 보통 JSON 형태로 전달
{
"id":1,
"name":"Kim"
}

4. 무상태성 (Stateless)

  • 서버는 이전 요청을 기억하지 않음
  • 모든 요청은 필요한 정보를 모두 포함
  • 확장성, 안정성에 유리

RESTful API란?

REST 원칙을 잘 지킨 API

  • 명확한 URI
  • 올바른 HTTP 메서드 사용
  • 상태 코드는 상태 코드답게 사용

HTTP 상태 코드

  • 잘 설계된 REST API는 URI만 잘 설계된 것이 아닌
  • 그 리소스에 대한 응답을 잘 내어주는 것까지 포함
  • 응답의 상태코드 값을 명확히 돌려줘야 함
| 코드 | 의미 |
| --- | --- |
| 200 | 성공 |
| 201 | 생성 성공 |
| 400 | 잘못된 요청 |
| 401 | 인증 필요 |
| 403 | 권한 없음 |
| 404 | 자원 없음 |
| 500 | 서버 오류 |

REST API의 장점

  • 직관적인 구조
  • HTTP 표준 활용
  • 프론트/백엔드 분업에 유리
  • 다양한 클라이언트 대응 가능

REST API의 단점

  • 요청/응답 데이터가 많아질 수 있음
  • 복잡한 관계 표현이 어려움
  • 실시간 통신에 한계 (→ WebSocket)

참고자료

results matching ""

    No results matching ""