일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 닥스훈트
- 강아지 유기농 사료
- 샤로수길 맛집
- 강아지 홀리스틱
- 티켓팅매크로
- 강아지
- 강아지 유기농
- 반려견 종류
- 강아지 열사병
- 쿠팡매크로
- 강아지종류
- 서울대입구 맛집
- 반려견 홀리스틱
- 자동화봇
- 반려견 사료등급
- 샤로수길 데이트
- 반려견 유기농
- 강아지 종류
- 동인천 맛집
- 티켓팅메크로
- 강아지 더위
- 반려견 유기농 사료
- 반려견 더위
- 쿠팡메크로
- 홀리스틱 유기농
- 부산 맛집
- 신포동 맛집
- 국비지원 예습
- 반려견 열사병
- 반려견
- Today
- Total
심심한잉여의 잡동사니
REST, REST API, RESTful 이란? 본문
항상 REST API에 대해서 질문 혹은 우대가 많아 알아보기로 했다.
분명 코딩을 하며 항상 사용하며 대략적으로는 이해는 했으나 정의를 해보지않아 머리속에 그려지지 않았으니 이 시간을 가지며 머리에 그려보도록 하자.
REST란?
자원을 이름으로 구분하여 해당 자원의 정보를 주고 받는 것
즉, HTTP URI를 통해 자원을 명시하고 HTTP 메소드를 통해 해당 자원에 대한 CRUD를 적용하는 것을 뜻한다.
HTTP Method는 무엇이 있는가?
대표적으로는 이 4가지가 있다.
GET : Read
POST : Create
PUT : Update
DELETE : Delete
각각 CRUD를 위와 같이 나누고 있다.
REST의 장단점
장점 :
- HTTP의 인프라를 그대로 사용하여 REST API사용을 위한 별도의 인프라 구축이 필요없다.
- HTTP의 표준을 최대한 활용하여 여러 추가적인 장점을 함께 가져갈 수 있게 해준다.
- HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하다.
- REST API 메시지가 의도하는 바를 명확하게 나타내어 의도를 쉽게 파악이 가능하다.
- 서버와 클라이언트의 역할을 명확하게 분리한다.
단점 :
- 표준이 존재하지 않는다.
- 사용할 수 있는 메소드가 4가지 뿐이다.(HTTP Method)
- 구형 브라우저는 사용이 불가능하다.(PUT, DELETE 사용 불가)
REST를 사용해야하는 이유
- 애플리케이션의 분리 및 통합
- 다양한 클라이언트의 등장
- 최근의 서버 프로그램은 다양한 브라우저와 안드로이드폰, 아이폰과 같은 모바일 디바이스에서도 통신이 가능해야함
- 멀티플랫폼에 대한 지원을 위해 서비스 자원에 대한 아키텍처를 세우고 이용한 방법을 모색한 결과, REST에 관심을 가지게 되었다.
REST의 특징
1. Server - Client(서버 - 클라이언트 구조)
- 자원을 가지고 있는 쪽이 Server, 자원을 요청하는 곳이 Client가 된다.
- 서로간의 의존성이 줄어든다.
2. HTTP의 특징을 그대로 가져온다.
REST API란?
REST 기반으로 서비스 API를 구현한 것
최근 OpenAPI, 마이크로 서비스 등을 제공하는 업체 대부분은 REST API를 제공한다.
REST API의 특징
- 사내 시스템들도 REST 기반으로 시스템을 분산해 확장성과 재사용성을 높여 유지보수, 운용을 편리하게 할 수 있다.
- REST는 HTTP 표준을 기반으로 구현하므로, HTTP를 지원하는 프로그램 언어로 클라이언트, 서버를 구현할 수 있다.
- REST API를 제작하면 델파이 클라이언트 뿐 아니라, 자바, C# 웹 등을 이용해 클라이언트를 제작할 수 있다.
RESTful의 개념
RESTful이란?
RESTful은 일반적으로 REST라는 아키텍처를 구현한 웹 서비스를 나타내기 위해 사용되는 용어
- REST API를 제공하는 웹 서비스를 RESTful하다고 할 수 있다.
RESTful의 목적
- 이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것
RESTful하지 못한 경우
- CRUD 기능을 모두 POST로만 처리하는 API
- route에 resource, id 외의 정보가 들어가는 경우
'코딩일기 > Spring&SpringBoot' 카테고리의 다른 글
[Spring]의존성 주입 @RequiredArgsConstructor (0) | 2022.09.06 |
---|---|
[Maven&Gradle]메이븐(Maven)과 그래들(Gradle) (0) | 2022.03.27 |
[Spring]필터(Filter) 와 인터셉터(Interceptor)차이 및 용도 (0) | 2022.03.21 |
[Spring]좋은 객체 지향의 설계 5가지 SOLID (0) | 2022.03.10 |
[Spring]스프링 MVC 프로젝트 구조의 이해 (0) | 2022.01.13 |