Notice
Recent Posts
Recent Comments
Link
반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 중간 평균값 구하기
- 코테준비
- 코테
- 카카오
- 콜백지옥
- 자료구조
- 자바
- 정렬
- 코딩
- 코딩테스트
- array
- 프로그래머스
- stack
- js
- 알고리즘
- NestJS
- mybatis
- 그리디알고리즘
- 자바스크립트
- SWEA
- AtoZ0403
- javascript
- 배열
- spring
- 스텍
- java
- 백준
- 삼성
- 삼성소프트웨어아카데미
- 인프런
Archives
- Today
- Total
개발에 AtoZ까지
[개념] REST, REST API, RESTful 정의 및 특징 본문
반응형
◆목표
REST의 정의
REST의 특징
REST API 정의
REST API 사용법
RESTful 정의
1. REST의 정의
- REST(Representaional State Transfer) 란 기기간의 자원을 이름(자원의 표현)으로 구분해 자원의 상태를 웹 기술인 HTTP 프로토콜을 활용하여 주고받는 것을 의미합니다. 즉, 분산 시스템을 위한 HTTP 기반 소프트웨어 아키텍처이다.
Tip) 자원, 자원의 표현, 상태, 분산 시스템
- 자원 : 해당 소프트웨어가 가지고 있는 모든 것
- 자원의 표현 : 자원에 이름을 명시적으로 정하는 것, ex) 고객정보를 customer로 정의하는 것
- 상태 : 자원의 상태(정보)를 전달하는 것, 전달하는 방법에는 JSON, XML를 주로 사용함
- 분산 시스템 : 하나의 시스템으로 보이는 독립된 컴퓨터들의 집합, 이를 위해 네트워크를 통한 컴퓨터 간의 통신이 필요 ex) MSA(MicroService Architecture)에서 사용하는 것처럼, 카카오로 자동 로그인 등
2. REST의 특징
1) REST의 특징
1] 서버와 클라이언트 구조
2] 상태 변환이 없다(Stateless)
- 클라이언트의 context를 서버에 저장하지 않음
- 이전 요청과 다음 요청 처리에 연관성이 없다 (개연성이 없음)
3] 캐시 처리 가능
- HTTP 프로토콜을 사용하기 때문에 HTTP 프로토콜의 기능 중 하나인 캐싱 기능 적용 가능
- 캐시 사용으로 응답 시간 향상, 별도의 트랜잭션이 발생하지 않기 때문에 정체 응답 시간, 성능, 서버 자원
이용률을 향상할 수 있다.
2) REST의 장점
1] HTTP 프로토콜 인프라를 그대로 사용하기 때문에 REST API 사용을 위한 추가 인프라가 없어도 된다
2] HTTP 표준 프로토콜을 따르는 모든 플랫폼(모든 문법)에 사용이 가능하다
3] HTTP URI와 메서드를 통해 의도하는 바를 쉽게 파악할 수 있다
4] 서버(자원을 가지고 있는 쪽)와 클라이언트(자원을 요청하는 쪽) 역할을 분리할 수 있다, 서로 간의 의존성 감소
3) REST의 단점
1] 사용할 수 있는 메서드가 4가지(CRUD) 밖에 없다.
2] 구형 브라우저에서 아직 지원하지 못하는 부분이 있다 (GET, DELETE 메서드)
Tip) URI
- URI : 자원을 가져오기 위한 방법 (URL의 상위 개념)
3. REST API 정의
- 타인의 컴퓨터(서버) 기능을 실행시키는 방법
Tip) API
- API : 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스(즉, 컴퓨터의 기능을 실행시키는 방법)
4. REST API 사용법
- URI를 통한 접근법 및 Collection, Element 사례
- URI를 통한 접근 후에는 HTTP 4가지 Method를 통해 가공을 실시함
1] GET(조회)
2] POST(생성)
3] PATCH(부분 수정) / PUT(전체 수정)
4] DELETE(삭제)
5. RESTful 정의
- REST라는 아키텍처를 구현하는 웹서비스를 가리키는 용어
ex) REST API를 제공하는 웹서비스를 RESTful 하다고 할 수 있음
반응형
'백엔드 > REST API' 카테고리의 다른 글
[SpringBoot] HTTP Status Code 제어 중요성 및 방법 (2) | 2021.07.17 |
---|---|
[HTTP통신] HTTP 메소드 및 특징 (0) | 2021.06.06 |
[네트워크][통신방식] Socket 통신과 Http 통신의 비교 (0) | 2021.03.03 |
Comments