회사에서 요구하는 우대사항을 보더라도 REST API를 이해하고 있다는 문장이 들어가 있는 것을 쉽게 볼 수 있듯이
REST API 는 중요한 개념을 차지합니다.
프로젝트나 인턴십을 진행할 때도 내가 REST API를 사용하고 있는지 아닌지 알지 못했고
이 개념에 대해 따로 이해하고 정리하고 싶다는 생각을 하다가
이제야 정리하게 되었습니다 !
REST API란,
REST 는 Representational State Teansfer 의 약자입니다.
데이터 자원을 명시적인 URL 소스로 구분하여 자원의 상태와 정보를 주고 싶는 것이라고 할 수 있습니다.
URI을 통해 자원(Resource)를 명시하고 HTTP Method를 통해 해당 자원에 대한 CRUD를 적용하는 것을 말합니다.
*CRUD는 Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 가리키는 용어입니다.
API는 정보들을 요청하는 지정된 형식으로 보내면 이렇게 답이 올 것이라는 공개된 형식.
소프트웨어가 다른 소프트웨어로부터 지정된 형식으로 요청, 명령을 받을 수 있는 수단을 말합니다.
한마디로 REST API는 별도의 설명없이 명시적으로 구분 가능한 API를 말합니다.
▼ REST API에서 REST의 의미가 출현하게 된 계기를 알고싶다면
REST API 에서의 REST의 의미부터 알아보자면
REST는 서버와 클라이언트가 각각 독립적으로 진화하기 위해서 만들어졌습니다.
서버의 기능이 변경되어도 클라이언트를 업데이트할 필요가 없습니다.
또한 웹 브라우저를 업데이트 했다고 웹 페이지를 변경할 필요도 없습니다.
이에 따라 웹에서는 이 부분이 잘 지켜지고 있는 편입니다.
웹은 현재 독립적으로 잘 진화하고 있기 때문에 REST는 성공적이라고 볼 수 있습니다.
REST 에 비해 REST API는 이 저자가 의미한 의미대로 잘지켜지지 않고 있으나
그냥 REST API 라고 불리며 사용되고 있는 경우가 대부분이라고 합니다.
사실 REST API의 정의에 대해 간단히 서칭하고 이해하고 싶었으나 너무 깊이들어가 더 이해하기 어려워짐.
REST API, RESTful API를 들었을 때 설명을 잘 못하겠지만 아마 사용하고 계실 수도 있습니다.
메세지안에 스스로가 무엇인지에 대한 의미를 담고 있는 URI를 가지면 됩니다.
REST API란 HTTP요청을 보낼 때 어떤 URI에 어떤 메소드를 사용할 지 개발자들 사이에 널리 지켜지는 약속입니다.
형식이기 때문에 기술에 구애받지 않습니다.
소프트웨어 간 HTTP를 주고받는 형식이 있다면 이 규칙들을 준수하여 RESTful한 서비스를 만들 수 있습니다.
URI 를 통해 식별하며 어떠한 행위를 할 때는 Method의 이름을 HTTP의 규정대로 사용합니다.
웹의 통신 규약인 HTTP를 이용한 REST API는 Create, Read, Update, Delete 를 할 수 있습니다.
이를 표현하는 HTTP Method로 POST, GET, PATCH, PUT, DELETE 가 있습니다.
REST의 특징
- 클라이언트 서버
REST 서버는 API를 제공하고 Clinet는 사용자 인증이나 컨텍스트를 관리하는 구조로 되어있어서 서버와 클라이언트의 역할이 명확하게 나뉘기 때문에 서로 간의 의존성이 줄어 독립적으로 관리하기 편리합니다.
- stateless (무상태성)
REST의 무상태성은 데이터 자원의 상태나 그 정보들을 별도로 저장하고 관리하고 있지 않다는 것을 의미합니다.
이러한 특징 때문에 데이터의 상태를 유지하고 있는 경우에 비해 데이터의 낭비를 줄일 수 있고 별도로 저장하고 있지 않기 때문에 서버는 들어오는 요청에 맞는 응답만 처리하면 됩니다. 따라서 서버가 불필요한 정보를 관리하지 않아도 되기 때문에 구현이 단순해집니다.
- Self-descriptiveness
REST API의 의미에 알맞게 API 자체만 보고도 데이터의 상태와 정보를 쉽게 이해할 수 있다는 것입니다.
marketkerly/product_list/food/sales 이 uri만 보고도 product list의 food에서 세일 상품들을 나타내고 있는 것을 알 수 있듯이 말입니다!
- cacheable
- uniform interface
Unifrom Interface Client 가 지정한 리소스에 대한 조작을 통일되고 한정적인 인터페이스로 수행하는 아키텍처 스타일을 말합니다.
리소스를 만들거나 업데이트하거나 삭제할 때 표현을 담아 전송해야한다. 메세지가 스스로를 설명해야 한다.
이 외에 다른 특징도 있습니다.
하지만 대부분의 특징이 가리키는 것은 정확하게 명시하여 URI 에 표현하고
서버와 클라이언트 간의 역할을 명확하게 할 수 있다는 점을 가리킵니다.
이제 REST API에 대한 이해가 되셨겠죠 ?
*프로토콜 : 공통의 테이터 교환 방법 및 순서에 대해 정의한 의사소통 약속, 규약 혹은 규칙 체계를 말합니다.
*
WEB
표현방식 : HTML
식별자 : URI
전송방법 : HTTP
*HTTP(HyperText Transfer Protocol) : 컴퓨터들끼리 HTML파일을 주고받을 수 있도록 하는 소통방식 또는 약속.
HTTP 통신은 Request(요청)과 Response(응답)으로 이루어 진다.
HTTP 통신의 매 요청과 응답은 이전 상태를 알지 못 한다. (Stateless)
'others' 카테고리의 다른 글
기업협업을 마치며 (0) | 2020.12.14 |
---|---|
TIL no.39 - axios 를 이용한 서버 통신 방법 ! (0) | 2020.11.23 |
[wecode 후기] 2차 프로젝트를 마치며 (0) | 2020.11.15 |
[wecode 후기] 1차 프로젝트를 마치며 (0) | 2020.10.31 |
TIL no.18 - DataBase의 기초라도 이해합시다 ..!🌧 (0) | 2020.09.26 |