코딩뚠뚠

REST / REST API / RESTful? 본문

공부/기타

REST / REST API / RESTful?

로디네로 2022. 4. 5. 00:27
반응형

 

 

REST API의 정확한 뜻을 알지못하고 쓰고있어서 정리해본다.

 

REST ?

REST API ?

RESTful ?

 


 

REST

 

REST 란

 

"Representational State Transfer"

분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 형식이다.

 

즉 웹에 존재하는 자원들에 고유한 URI를 부여해 활용하는것 으로, 자원에 대한 주소를 지정하는 방법론을 의미한다.

 

https://hanseul-lee.github.io/2020/12/24/20-12-24-URL/


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 웹 서비스는 많은 기업에서 필요로 하는 기본 보안과 트랜잭션 컴플라이언스를 제공하지만, 무거운 경향이 있다.

https://www.thistechnologylife.com/soap-vs-rest/

 


 

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 하지 않은 이유 

 

당신의 API가 Restful 하지 않은 5가지 증거

최근에 “Lorna Mitchell” 라는 “Five Clues That Your API isn’t RESTful (당신의 API가 RESTful 하지 않는 5가지 증거)” 의 내용을 기본으로 저의 견해를 덧붙여서 재구성 해봤습니다. 참고로 “Lorna Mitchell”

beyondj2ee.wordpress.com

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