일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- MCU 딥러닝
- 포스코 ai 교육
- BFS
- 포스코 AI교육
- 그리디
- 삼성코테
- 딥러닝
- tinyml
- DP
- 삼성역테
- dfs문제
- 임베디드 딥러닝
- bfs문제
- 영상처리
- 코테
- dfs
- 컴퓨팅사고
- 코테 문제
- 포스코 교육
- 삼성코딩테스트
- sort
- 알고리즘
- 자료구조
- 삼성역량테스트
- DP문제
- TensorFlow Lite
- 다이나믹프로그래밍
- 초소형머신러닝
- tflite
- 코딩테스트
- Today
- Total
코딩뚠뚠
REST / REST API / RESTful? 본문
REST API의 정확한 뜻을 알지못하고 쓰고있어서 정리해본다.
REST ?
REST API ?
RESTful ?
REST
REST 란
"Representational State Transfer"
분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 형식이다.
즉 웹에 존재하는 자원들에 고유한 URI를 부여해 활용하는것 으로, 자원에 대한 주소를 지정하는 방법론을 의미한다.
REST 구성요소
- Resource
: 모든 Resource(자원)들은 고유한 ID를 가지고 있고, Client는 URI를 이용해 자원을 지정하고 조작을 Server에 요청한다.
- Verb
: HTTP 프로토콜의 Method를 사용하며, 이는 GET, POST, PUT, DELETE와 같은 메서드를 제공한다.
- Representation of Resource
: Client가 조작을 요청하면 Server는 JSON, XML, TEXT, RSS등으로 응답을 보낸다.
REST 특징
- Client / Server 구조를 가진다.
- 프로토콜이므로 무상태성(Stateless)을 가진다.
- Cacheable, 웹에서 사용하는 인프라를 그대로 활용가능하다.
- Layered System이다.
Client 는 REST API Server만 호출 / REST Server는 다중 계층으로 구성됨 / PROXY, 게이트웨이 같은 중간 매체 사용가능
- Code-On-Demand로 Server로부터 스크립트를 받아 Client에서 실행
- Uniform Interface으로 Resource에 대한 조작을 통일된 인터페이스로 수행한다.
온라인 데이터 전송 방식의 다른 방법으로는 SOAP 가 있다.
Simple Object Access Protocol 로 대부분의 레거시 시스템에서 SOAP를 준수한다.
SOAP 웹 서비스는 많은 기업에서 필요로 하는 기본 보안과 트랜잭션 컴플라이언스를 제공하지만, 무거운 경향이 있다.
REST API
REST API 란
REST 기반으로 API를 구현한 것
구글맵, 공공데이터 등의 OpenAPI는 대부분 REST API를 제공한다.
REST API 특징&사용이유
REST 기반으로 시스템을 분산해 확장성과 재사용성을 높일 수 있다.
-> 유지보수 및 운용 편리
HTTP 표준을 기반으로 구현하므로, HTTP지원 언어로 Client, Server 구현 가능
복잡하지 않고 직관적이다
RESTful
RESTful 이란
언어적으로 봤을때 -ful 은 형용사형 접미사로 많이 쓰인다.
RESTful 도 이와 같은 느낌으로 쓰인다.
RESTful은 REST 아키텍처를 구현하는 웹 서비스를 나타내기 위해 사용되는 용어이다.
-> REST API를 제공하는 웹서비스를 RESTful 하다고 할 수 있다.
예를 들면 아래와 같은 말도 있다.
-> 당신의 API가 Restful 하지 않은 이유
REST의 규칙을 지키며 API를 작성해야 RESTful 할 수 있다.
이는 일관적인 컨벤션을 통한 API의 이해도 및 배포 시 호환성을 높이는 것이 목적으로, 근본적인 목적이 성능향상에 있는 것은 아니다.
오직 성능만을 위해서는 RESTful API를 구현할 필요는 없다.
'공부 > 기타' 카테고리의 다른 글
Git 원격 레포지토리 가져오기 (0) | 2022.07.04 |
---|---|
Wireshark란 / 기본사용법 (2) | 2022.05.15 |
엣지컴퓨팅이란? (0) | 2022.03.06 |
MISRA C 2012와 특성 (0) | 2021.12.28 |
MISRA C 코딩룰 (1) | 2021.12.27 |