
REST(Representational State Transfer)는 분산 시스템을 설계하기 위한 아키텍처 스타일로, 2000년 로이 필딩(Roy Fielding)의 박사 논문에서 처음 정의되었습니다. RESTful API는 이 REST 아키텍처 스타일을 따르는 애플리케이션 프로그래밍 인터페이스(API)를 의미합니다. REST는 특정 기술이나 프로토콜에 종속되지 않지만, HTTP와 같은 웹 표준 프로토콜과 함께 사용되는 경우가 많습니다.
RESTful API는 자원(Resource)을 중심으로 설계된 API로, 클라이언트와 서버 간의 통신을 단순하고 확장 가능하며 효율적으로 만들기 위해 REST의 원칙과 제약 조건을 준수합니다. RESTful API는 자원을 URI로 식별하고, HTTP 메서드와 상태 코드를 활용하여 자원의 상태를 전송하거나 조작합니다.
RESTful API는 다음과 같은 개념과 원칙에 기반합니다:
/users → 사용자 목록/users/123 → ID가 123인 특정 사용자{
"id": 123,
"name": "John Doe",
"email": "john.doe@example.com"
}RESTful API는 다음 제약 조건을 준수해야 합니다:
Cache-Control, ETag)를 사용하여 캐싱 정책을 정의합니다.자원 중심 설계:
GET /users → 사용자 목록 조회POST /users → 새 사용자 생성PUT /users/123 → ID가 123인 사용자 업데이트DELETE /users/123 → ID가 123인 사용자 삭제표준화된 HTTP 메서드 및 상태 코드:
확장성:
플랫폼 독립성:
사용자 관리 시스템의 RESTful API 예시:
| HTTP 메서드 | URI | 설명 | 응답 상태 코드 |
|---|---|---|---|
| GET | /users | 모든 사용자 조회 | 200 OK |
| GET | /users/123 | 특정 사용자(ID=123) 조회 | 200 OK |
| POST | /users | 새 사용자 생성 | 201 Created |
| PUT | /users/123 | 특정 사용자 업데이트 | 200 OK |
| DELETE | /users/123 | 특정 사용자 삭제 | 204 No Content |
RESTful API는 분산 시스템 설계에서 단순성과 확장성을 강조하는 아키텍처 스타일입니다. HTTP 프로토콜과 함께 사용될 때 REST의 원칙과 제약 조건을 충족하며, 자원 중심 설계와 표준화된 인터페이스를 통해 다양한 플랫폼에서 효율적으로 작동할 수 있습니다. RESTful API는 현재 웹 애플리케이션 개발에서 가장 널리 사용되는 방식 중 하나로 자리 잡았습니다.