1. REST
Rest 란?
Rest (Representational State Transfer)라는 용어의 약자로 웹 창시자 중의 한명인 Roy Fielding에 의해
2000년에 논문 발표 되었다고 한다.
Roy Fielding은 당시 아키텍쳐가 웹(HTTP)의 장점을 충분히 담아내지 못한다고 생각하였다고 한다.
그래서 직접 웹(HTTP)의 장점을 최대한 활용한 네트워크 기반의 아키텍처를 소개 했는데, 그것이 REST 이다.
웹기반으로 리소트(데이터에 입력, 수정, 삭제 등)을 관리하기 위한 아키텍쳐 구조이며,
현재는 많은 API들이 REST 기반에서 JSON을 이용한 형태로 제공되고 있습니다.
한줄로 이야기 하면,
Rest의 핵심은 리소스(파일, 웹, 이미지, html) 지향적 아키텍쳐 입니다.
Rest 구성
REST는 자원(Resource) / 행위(Method) / 메시지(Massage) 총 3가지로 구성되어 있다.
아래 REST를 한문장으로 표현하면 "15000원 하는 어린왕자 책을 추가한다" 이다.
자원(Resource)는 '책'이 해당하며, 아래 코드에서는 'books'가 해당된다.
행위(Method)는 '추가한다'가 해당하며, 아래 코드에서는 'POST'가 해당한다.
메시지(Massage)는 '15000원 하는 어린왕자 책'이 메시지에 해당하며,
아래에 books로 작성되어 있는 JSON영역에 해당되는 것이다.
# HTTP POST, http://bookseller/books
{
"books":{
"name":"The Little Prince"
"price":"15,000"
},
}
REST의 행위(Method)
API의 의미를 살펴 보면 대부분 'xxx을 조회한다.', 'xxx을 생성한다', 'xxx을 삭제한다'와 같이 행위에 대한 부분이 빠질수 없다. REST에서는 이와 같은 행위에 대한 메서드를 HTTP 메서드를 그대로 사용한다.
HTTP에는 다양한 메서드가 존재하지만 REST에서는 그 중 CRUD(Create Read Update Delete)에
해당하는 4가지 메서드만 사용한다.
1. POST : 생성 [Create]
- 예> HTTP POST, http://bookseller/books -> 책 항목을 생성한다.
2. GET : 조회 [Select]
- 예> HTTP GET, http://bookseller/books -> 책 항목을 모두 조회한다.
3. PUT : 업데이트 [Update]
- 예> HTTP PUT, http://bookseller/books -> 해당 책 항목에 정보를 업데이트 한다.
4. DELETE : 삭제 [Delete]
- 예> HTTP DELETE, http://bookseller/books -> 해당 책 항목들을 삭제 한다.
메서드 부분에서는 추가적으로 주의해서 알아두어야 할 것이 있다.
바로 Idempotent이며, Idempotent(멱등성)은 여러번 수행을 해도 결과가 동일한 경우를 의미한다.
예를 들어 POST 메서드를 호출할 때마다 해당 항목의 Count를 증가시키는 경우라면
이것은 Idempotent하지 않다.
하지만 GET 메서드를 통해 해당 항목의 정보를 조회만 하는 경우에는 Idempotent하다고 볼 수 있는 것이다.
이와 같은 Idempotent가 중요한 이유는 서로 연관된 여러 API가 동시에 사용되는 경우,
하나의 API동작이 실패하게 되면 Idempotent 하지 않는 API에 대해서는 트렌잭션과 같은 부분을
추가적으로 고민해줘야 할 필요가 있습니다.
2. REST API
API(Application Programming Interface)는
내가 만든 서비스가 개인, 기업, 기관이 제공하는 기능 및 프로그램을
사용 할 수 있도록 도와주는 중간 매개체를 뜻 합니다.
REST API는 애플리케이션이나 디바이스가 서로 간에 연결하여 통신할 수 있는 방법을 정의하는 규칙 세트이며,
REST(REpresentational State Transfer) 아키텍처 스타일의 디자인 원칙을 준수하는 API입니다.
즉, REST 기반으로 서비스 API를 구현하는 것 입니다.
최근 OpenAPI(누구나 사용할 수 있도록 공개된 API : 구글 맵, 공공 데이터 등), 마이크로 서비스(하나의 큰 애플리케이션을 여러 개의 작은 애플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 아키텍처) 등을 제공하는 업체 대부분은 REST API를 제공 합니다.
3. RESTful이란?
RESTful은 일반적으로 REST라는 아키텍처를 구현하는 웹 서비스를 나타내기 위해 사용되는 용어이다.
REST API 를 제공하는 웹 서비스를 "RESTful" 하다고 할 수 있습니다.
RESTful은 REST를 REST답게 쓰기 위한 방법으로, 누군가가 공식적으로 발표한 것이 아닙니다.
즉, REST 원리를 따르는 시스템은 RESTful이란 용어로 지칭됩니다.
'개발 및 IT 용어 > IT 용어' 카테고리의 다른 글
NFC 란? (0) | 2022.03.03 |
---|
댓글