일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- REST API
- IP주소
- eslint
- CRLF
- 응답코드
- lazy-load
- 참조타입
- 퀵정렬
- react
- 개행문자
- git autocrlf
- git 개행문자
- eslint-prettier
- CRA
- git
- k번째수
- expected linebreaks to be 'lf' but found 'crlf' linebreak-style
- LF
- password 안보임
- expected linebreaks to be 'crlf' but found 'lf' linebreak-style
- 가장큰수
- input 안보임
- prettier
- vscode
- 원시값
- JadenCase
- input type password
- 프로그래머스
- git 명령어
- HTTPS
Archives
- Today
- Total
우파루파의 개발 기록
[Server] REST API의 간단한 개념 본문
이번 포스팅에서는 REST 아키텍처의 개념에 대해 간단하게 개념 정리를 해보겠습니다.
단순한 개념 정리이므로 개념에 대해 훑는 정도로만 봐주시면 될 것 같습니다.
REST란
Representational State Transfer
의 약어입니다.
소프트웨어 아키텍처의 한 형식이고, 네트워크 아키텍처 원리의 모음이라고 정의합니다.
HTTP 통신에서 특정 자원에 대한 요청
을 Resource
와 Method
로 표현하여 특정한 형태
로 응답하는 것을 말합니다.
용어에 대한 개념은 아래에서 간단하게 짚어보겠습니다.
이외의 다른 아키텍처는 대표적으로 SOAP 이 있습니다.
특정 자원에 대한 요청의 종류
CRUD 액션
Create
Read
Update
Delete
Resource
클라이언트가 요청할 수 있는 Unique한 값을 가진 URI(uniform resource identifier
)를 말합니다.
Method
행위에 대한 정의에만 집중하며, HTTP METHOD를 사용합니다.
- GET
- 단순히 데이터를 READ 할 때 사용합니다.
- POST
- 데이터를 추가할 때 사용합니다.
- PUT (자원의 전체 교체)
- 데이터를 수정할 때 사용합니다.
- PATCH (자원의 부분 교체)
- 데이터를 수정할 때 사용합니다.
- DELETE
- 데이터를 삭제할 때 사용합니다.
특정한 형태
JSON 형식을 말합니다.
네트워크 아키텍처 원리란?
자원(Resource)를 정의하고 자원에 대한 주소를 지정하는 방법 전반을 말합니다.
REST 아키텍처의 6가지 조건
- 인터페이스의 일관성특정한 클라이언트의 플랫폼에 종속되지 않고 모든 클라이언트에서 사용 가능하게 해야 합니다.
- 요청을 일관되고 한정적으로 수행할 수 있는 아키텍처 구조를 의미합니다.
- 무상태
- 클라이언트의 Request에 대한 정보를 저장하지 않아야 하고, 클라이언트 각각의 요청을 개별적인 요청으로 받아들여야 합니다. 서버에서 처리해야 하는 부하가 줄어드므로 더 효율적으로 처리할 수 있습니다.
- 캐시 처리 가능
- 캐시 처리가 가능해야 합니다.
- 계층화
- 클라이언트가 요청한 데이터를 검색하는 데 있어 필요한 관련된 서버의 각 유형을 클라이언트가 볼 수 없는 계층 구조로 체계화된 시스템이어야 합니다.
- Code on demand (Optional)
- 클라이언트의 요청을 받으면 서버가 클라이언트에서 실행할 수 있는 코드를 전송하여 클라이언트의 기능을 확장시킬 수 있는 기능이 있어야 합니다.
- 클라이언트/서버 구조
- 클라이언트 & 서버 및 리소스로 구성되어 있으며 요청이 HTTP를 통해 관리되는 아키텍처여야 합니다.
참조 문서
'development > Server | Node.js' 카테고리의 다른 글
[Termius] Termius에서 SSH로 EC2 instance에 접속하기 (0) | 2022.10.07 |
---|---|
[Server] Protocol과 IP, IPS, DNS 및 관련 개념 정리 (0) | 2021.10.19 |
[Server] HTTP/HTTPS와 응답 상태별 코드의 간단한 개념 (0) | 2021.06.25 |