Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- flask
- 티스토리챌린지
- NoSQL
- docker
- 코딩테스트
- 연습
- 아티클 스터디
- web
- 오블완
- Wil
- git
- viewsets
- github
- SQL
- 개발공부
- 도커
- 장고
- CS
- 자료구조
- Doker
- Python
- ERD
- 쿠키(cookie)
- redis
- django
- nginx
- 세션(Session)
- JWT
- 파이썬
- Til
Archives
- Today
- Total
SteadyDrills
RESTful 아키텍처 본문
241117
RESTful 아키텍처
웹 기반 시스템을 설계하기 위한 소프트웨어 아키텍처 스타일로, "Representational State Transfer"의 약자이다.
REST는 HTTP 프로토콜을 기반으로 하며, 클라이언트와 서버 간의 통신을 효율적으로 수행하는 데 중점으로 만들어졌다.
- 자원 기반
자원은 URI(Uniform Resource Identifier)를 통해 식별된다. JSON, XML, HTML 등 다양한 형식으로 표현될 수 있으며, 클라이언트는 자원의 표현을 요청하고, 서버는 해당 표현을 반환한다.
- 무상태성(Stateless)
서버의 부하를 줄이고, 확장성을 높이기 위해, 요청은 각각 독립적으로 처리되며, 서버는 클라이언트의 상태를 기억하지 않는다. 이때 클라이언트는 필요한 모든 정보(인증, 형식, 상태 등)를 요청에 포함해야 한다.
- HTTP 메서드의 활용
RESTful API는 HTTP 메서드를 사용하여 자원에 대한 CRUD(Create, Read, Update, Delete) 작업을 수행한다.
GET: 자원 조회 | POST: 자원 생성 | PUT: 자원 전체 수정 | PATCH: 자원 부분 수정 | DELETE: 자원 삭제
- 상태 전이(Stateless Communication)
클라이언트와 서버 간의 상호작용은 상태 전이를 통해 이루어진다. 클라이언트가 서버에 요청을 보내면, 서버는 그에 따른 응답을 반환하고, 클라이언트는 새로운 상태로 전이되는 형식이다.
- 계층화(Layered System)
클라이언트와 서버 간의 통신이 여러 계층을 통해 이루어질 수 있다. 즉, 클라이언트는 직접 서버와 통신하지 않고, 중간에 프록시 서버나 게이트웨이를 두어 요청을 처리할 수 있다.
- 캐싱(Caching)
성능을 향상시키고, 불필요한 요청을 감소시키기 위해, 클라이언트의 요청에 대해 서버가 반환하는 응답을 캐싱할 수 있다.
- 일관성 있는 인터페이스
일관된 인터페이스를 제공하여 클라이언트와 서버 간의 상호작용을 단순화 한다.클라이언트와 서버의 독립성을 높이고, 다양한 클라이언트에서 API를 쉽게 사용할 수 있도록 합니다.
'웹개발' 카테고리의 다른 글
CSRF(Cross-Site Request Forgery) 토큰이란? (0) | 2024.11.22 |
---|---|
[DJANGO] FBV와 CBV의 차이 (0) | 2024.11.20 |
SQLite란? (4) | 2024.11.13 |
Redis란? (1) | 2024.11.08 |
Gunicorn란? (0) | 2024.11.07 |