요즘 면접을 많이 보러다니면서 REAT,API,RESTful 이 단어가 혼동이 왔었다. 가장 기본적인 단어들이지만 정말 어설프게 알고 있다간 개쪽(?) 당할꺼같아서 정리하고자 한다.
REST : “Representational State Transfer” 의 약자이며 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 의미한다.
EX)
자원: 그 앱이 가지고 있는 데이터(자원)의 모든 것 -> 문서, 이미지등
자원의 표현: db의 상품의 이름이 데이터(자원)일때 "GoodsName"으로 간략하게 표현할수있다.
특징 :
http 프로토콜을 그대로 활용하여 활용도가 넓다.
소프트웨어 개발 아키텍처의 한 형식
설명 : REST는 자원이 있고 HTTP 메소드를 통해 자원을 처리하도록 설계된 아키텍쳐이다.
CRUD Operation
Create : 생성(POST)
Read : 조회(GET)
Update : 수정(PUT)
Delete : 삭제(DELETE)
HEAD : header 정보 조회(HEAD)
장점 : 별로의 인프라 불필요, 모든 플랫폼에서 사용이 가능하다, 범용성을 보장,
단점 : 표준이 존재하지 않는다. 메소드가 제한적이다 (http 메소드).
개념 : API(Application Programming Interface)란 자원과 기능의 집합을 제공하며 컴퓨터 프로그램간 상호작용을 할수 있는 것을 말한다. 또한 서로 정보를 교환가능하도록한다.
개념 : REST 기반으로 서비스 api를 구현한것이다. Openapi이나 마이크로어플리케이션은 제공하는 회사들을 REST API을 기반으로 한다.|
특징 : REST 기반으로 시스템을 분산해 확장성과 재사용성을 높혀 유지보수 및 운용을 편리하게 한다.
개념 : REST답게 이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것를 말한다.
https://ko.wikipedia.org/wiki/REST
https://velog.io/@stampid/REST-API%EC%99%80-RESTful-API