목표
- REST의 개념 이해
- REST의 특징 이해
- REST API의 개념을 이해
- REST API의 설계 규칙을 이해
- RESTful의 개념을 이해한다
REST의 개념
REST란
- REST의 정의
- "Representational State Transfer"의 약자
- 자원을 표현하여 해당 자원의 상태를 주고 받는 모든것을 의미
- 즉 자원(resource)의 표현(representation)에 의한 상태 전달
- 월드 와이드 웹(www)과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 개발 아키텍처의 한 형식
- REST는 기본적으로 웹의 기존 기술과 HTTP프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다.
- REST는 네트워크 상에서 Client와 Server사이의 통신 방식 중 하나이다.
- REST의 구체적인 개념
- HTTP URL(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(GET, POST, DELETE, PUT)을 통해서 해당 자원에 대한 CRUD Operation을 적용하는것을 의미
- CRUD Operation
- Create : 생성(POST)
- Read : 읽기(GET)
- Update : 업데이트(Update)
- Delete : 삭제(Delete)
- HEAD : header 정보 조회(HEAD)
- CRUD Operation
- HTTP URL(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(GET, POST, DELETE, PUT)을 통해서 해당 자원에 대한 CRUD Operation을 적용하는것을 의미
- REST의 장단점
- 장점
- HTTP 프로토콜의 인프라를 그대로 사용하므로 REST API 사용을 위한 별도의 인프라를 구축 할 필요가없다.
- HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하다.
- REST API 메시지가 의도하는 바를 명확하게 나타내므로 의미 파악이 쉽다.
- 서버와 클라이언트의 역활이 명확하게 분리되어 있다.
- 단점
- 표준이 존재하지 않는다.
- 사용할수 있는 메소드가 4가지 밖에 없다.
- 브라우저를 통해 테스트할 일이 많은 서비스라면 쉽게 고칠 수 있는 URL보다 Header 값이 더 어렵게 느껴진다.
- 장점
- REST 구성요소
- 자원(Resource) : URL
- 모든 자원에 고유한 ID가 존재하고, 이 자원은 Server에 존재한다.
- 자원을 구별하는 ID는 '/content/:id'와 같은 HTTP URL 이다.
- Client는 URL를 이용해서 자원을 지정하고 해당 자원의 상태에 대한 조작을 Server에 요청한다.
- 행위(Verb) : HTTP Method
- HTTP 프로토콜의 Method를 사용한다.
- HTTP 프로토콜은 GET, POST, PUT, DELETE와 같은 메서드를 제공한다.
- 표현(Representation of Resource)
- Client가 자원의 상태(정보)에 대한 조작을 요청하면 Server는 이에 적절한 응답은 응답한다.
- JSON 혹은 XML를 통해 데이터를 조고 받는 것이 일반적이다.
- 자원(Resource) : URL
REST API란
- API(Application Programming Interface)란
- 데이터와 기능의 집합을 제공하여 컴퓨터 간에 인터페이스를 촉진하여, 서로 정보를 교환하는 것
- REST API의 정의
- REST 기반으로 서비스 API 구현한 것
- 최근 Open API(공개된 API: 구글 맵 공공 데이터 등)제공하는 업체 대부분은 REST API를 제공한다.
- REST API의 특징
- 사내 시스템들도 REST 기반으로 시스템을 분산해 확장성과 재사용성을 높여 유지보수 및 운용을 편리하게 할 수 있다.
- REST는 HTTP표준을 기반으로 구현하므로, HTTP를 지원하는 프로그램 언어로 클라이언트, 서버를 구현할 수있다
- REST API 설계 기본 규칙
- URL는 정보의 자원을 표현해야 한다.
- 대문자 보다는 소문자
- ex) GET /Content or /CONTENT -> /content 이렇게 사용해야된다.
- 자원에 대한 행위를 표현하면 안된다 (GET, POST, DELETE, PUT)
- ex) GET /content/get or /content/delete 등등
- 대문자 보다는 소문자
- URL는 정보의 자원을 표현해야 한다.
RESTful이란
- RESTful은 일반적으로 REST라는 아키텍처를 구현하는 웹 서비스를 나타내기 위해 사용되는 용어이다.
- REST API를 제공하는 웹서비스를 RESTful하다고 할수있다.
- RESTful은 REST에 대한 사용방법, 공식문서를 따른것이 아니다. REST 원리를 잘 따른 시스템이 RESTfull 이다
RESTful 목적
- 이해하기 쉽고 사용하기 쉬운 REST API를 만드는것
참고
https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html
'ITstudy' 카테고리의 다른 글
DNS(Domain Name System) 개념과 동작 원리 (17) | 2022.11.24 |
---|---|
윈도우(windows)에서 포트 검색 및 포트 죽이기 (5) | 2022.09.16 |
Encoding , 유니코드 , UTF-8 에 대해서...... (2) | 2022.02.28 |
MySql 자료형과 옵션 (Data Types and Options) (3) | 2021.09.10 |
URL 대해서 분석 & 이해 (4) | 2021.09.05 |