REST
- Resource를 중심으로 동작
- 고유한 URL을 사용해 리소스를 식별하고
- HTTP 메서드를 활용해 해당 자원(URI)에 대한 CRUD 요청을 처리함
- 자원(HTTP URI)
- 자원에 대한 행위(HTTP Method)
- 자원에 대한 행위의 내용(HTTP Message Pay Load)
HTTP 메서드 | 역할 | 설명 |
GET | 조회 | 데이터 가져오기 |
POST | 생성 | 새로운 데이터 만들기 |
PUT | 수정 | 데이터 전체 업데이트 |
PATCH | 수정 | 데이터 부분 업데이트 |
DELETE | 삭제 | 데이터 제거 |
Create | 데이터 생성(POST) |
Read | 데이터 조회(GET) |
Update | 데이터 수정(PUT, PATCH) |
Delete | 데이터 삭제(DELETE) |
REST API(REpresentational State Transfer API)
- 웹 기반 애플리케이션에서 클라이언트와 서버가 데이터를 주고받을 때 사용하는 인터페이스
- 주로 HTTP 매서드를 활용해 CRUD 작업을 수행하며,
- 리소스 중심으로 설계됨
REST 특징
더보기
1. 클라이언트-서버 구조 (Clitne - Server)
- 클라이언트 : 요청 보내고, 서버 : 데이터 처리해 응답을 보냄
- 클라이언트와 서버가 분리되어 있어야 함
2. 무상태성 (Stateless)
- 상태 정보 저장 안함 (이전 요청의 상태 기억x)
- 각 요청은 독립적으로 처리됨
3. 캐시 가능 (Cacheable)
- 클라이언트는 서버의 응답을 캐싱할 수 있어야 함
- 응답에 Cache-Control 헤더를 포함해 데이터를 캐싱할지 여부를 결정할 수 있음
4. 계층화된 시스템 (Layered System)
- 클라이언트는 서버와 직접 통신X, 여러 계층을 거쳐 요청을 처리할 수 있다.
5. 일관된 인터페이스 (Uniform Interface)
- REST API는 일관된 방식으로 리소스(데이터)를 표현해야 한다.
- 각 리소스는 특정한 URL을 가지고 있어야 한다.
REST API 예제
더보기
ex) 사용자 정보(User)를 관리하는 REAT API
1) 사용자 목록 조회(GET)
GET /users
{"id":1, "name":"juyeon"}
{"id":2, "name":"judy"}
2) 특정 사용자 조회(GET)
GET /users/1 //http
{"id":1, "name":"juyeon"} //json
3) 새로운 사용자 생성(POST)
//http
POST /users
Content-Type: application/json
{
"name" : "길동"
}
- 응답
{"id":3, "name":"길동"} //json
4) 사용자 정보 수정(PUT)
PUT /users/1
Content-Type: application/json
{
"name":"juyeon 수정됨"
}
5) 사용자 삭제(DELETE)
DELETE /users/1
(응답: 성공적으로 삭제됨)
REST API의 장단점
✅ 장점
- 구조가 명확해 이해하기 쉬움
- HTTP 기반이므로 별도의 프로토콜 필요 없다
- 언어와 플랫폼에 독립적으로 사용 가능
- 캐싱이 가능해 성능 최적화가 쉬움
❌ 단점
- 요청이 많아지면 OverHead가 증가할 수 있다.
- 데이터 여러 번 요청 시 성능이 떨어질 수 있다.
- 실시간 데이터 업데이트가 필요한 경우 웹소켓보다 불리하다.
'OMS' 카테고리의 다른 글
HTTP Request Methods (1) | 2024.10.27 |
---|---|
Web - Cookie와 Session (0) | 2024.10.21 |
Web - 브라우저 동작 방법 (0) | 2024.10.14 |