[One Day One Question]
REST에 대해서 설명해 주세요.
REST(Representational State Transfer)는 웹 서비스 설계를 위한 아키텍처 스타일로, 클라이언트와 서버 간의 통신을 단순하고 효율적으로 하기 위해 설계되었습니다. REST는 HTTP 프로토콜을 기반으로 동작하며, 웹 애플리케이션 개발에서 가장 널리 사용되는 표준 중 하나입니다.
1. REST의 주요 특징
- 자원(Resource) 중심 설계
- REST에서는 모든 것을 자원으로 간주합니다.
- 자원은 고유한 URI(Uniform Resource Identifier)로 식별됩니다.
예:- https://example.com/users/123 (사용자 ID 123인 사용자)
- https://example.com/products/45 (제품 ID 45인 제품)
- HTTP 메서드 사용
REST는 HTTP의 주요 메서드를 활용하여 자원에 대한 작업을 정의합니다:- GET: 자원을 조회 (읽기)
- POST: 자원을 생성
- PUT: 자원을 업데이트 (전체 수정)
- PATCH: 자원을 부분 업데이트
- DELETE: 자원을 삭제
- 상태 비저장성 (Stateless)
- 클라이언트와 서버 간의 통신은 무상태(Stateless)입니다.
즉, 서버는 클라이언트의 이전 요청 상태를 저장하지 않습니다.
모든 요청에는 필요한 모든 정보를 포함해야 합니다.
- 클라이언트와 서버 간의 통신은 무상태(Stateless)입니다.
- 계층적 구조
- REST는 서버와 클라이언트 사이에 계층을 둘 수 있습니다.
예를 들어, 프록시 서버, 로드 밸런서 등을 추가해도 REST의 작동 방식에 영향을 주지 않습니다.
- REST는 서버와 클라이언트 사이에 계층을 둘 수 있습니다.
- 캐싱(Caching)
- RESTful 시스템은 HTTP 프로토콜의 캐싱 기능을 활용하여 클라이언트 요청을 더 효율적으로 처리할 수 있습니다.
- 표현(Representation)
- 자원은 여러 형식으로 표현될 수 있습니다.
일반적으로 JSON이나 XML 형태로 데이터를 주고받습니다.
- 자원은 여러 형식으로 표현될 수 있습니다.
2. REST의 장점
- 표준화: HTTP와 같은 표준 프로토콜을 활용하므로 사용이 쉽습니다.
- 유연성: 클라이언트와 서버가 독립적으로 설계 및 개발될 수 있습니다.
- 확장성: 계층적 구조와 무상태 설계로 인해 확장성이 뛰어납니다.
- 다양한 포맷 지원: JSON, XML 등 다양한 데이터 형식을 사용할 수 있습니다.
3. REST의 단점
- 복잡한 요청 관리: 상태 비저장성 때문에 요청마다 모든 정보를 보내야 해서 비효율적일 수 있습니다.
- 실시간 통신에 부적합: REST는 주로 요청-응답 방식에 적합하며, 실시간 데이터 전송에는 WebSocket 같은 기술이 더 적합합니다.
'cs > ODOQ' 카테고리의 다른 글
[ODOQ] 스케일 업(Scale-Up) , 스케일 아웃(Scale-Out) (0) | 2025.01.17 |
---|---|
[ODOQ] ACID란?(데이터베이스) (0) | 2025.01.16 |
[ODOQ] 로드 밸런싱(Load Balancing) (0) | 2025.01.10 |
[ODOQ] Connection Timeout, Socket Timeout, Read Timeout (1) | 2025.01.04 |
[ODOQ] WAS, 웹 서버 (2) | 2025.01.03 |