티스토리 뷰

Etc

Rest API

parkho79 2019. 12. 2. 14:35
728x90



이번 포스팅에서는 REST API 에 대해 쓰려한다.

사실 Google drive API 를 연동하는 블로그를 쓰다가 곁다리로 추가하는 거라 상세히 다루지는 않겠다.



Rest API?

Representational State Transfer API 의 약자.

HTTP URI 를 통해 자원을 명시하고, HTTP method(post, get, put, delete) 를 통해 CRUD(create, read, update, delete) 를 처리하는 방식이다.

POST
자원 생성(Create)
GET
자원 조회(Read)
PUT
자원 수정(Update)
DELETE
자원 삭제(Delete)



Rest API 구성요소

◼ Resource

- 모든 자원은 서버에 존재하고 각 자원은 고유 ID 가 존재한다.

- 자원을 구별하는 ID 는 HTTP URI 다.

- 클라이언트는 URI 를 이용하여 서버에 요청할 수 있다.

 

◼ Method

- HTTP method (post, get, put, delete) 를 이용한다.

- HTTP method 로 CRUD (create, read, update, delete) 를 처리한다.

 

◼ Representation of resource

- 클라이언트 & 서버가 데이터를 주고 받는 형태로 JSON, XML, TEXT, RSS 등이 있다.

- 최근에는 JSON 을 주로 사용한다.



Rest API 특징

◼ Uniform Interface (유니폼 인터페이스)

- URI 로 지정한 리소스에 대한 조작을 통일되고 한정적인 인터페이스로 수행한다.

- HTTP 를 따르는 모든 플랫폼에서 사용 가능한다.

 

◼ Stateless (무상태성)

- REST 는 무상태성을 갖는다.

- 작업을 위한 상태정보를 따로 저장하고 관리하지 않는다.

- API 서버는 들어오는 요청만을 단순히 처리하여 부담을 줄이고, 서비스의 자유도가 높아진다.

 

◼ Cacheable (캐시 가능)

- HTTP 가 가진 캐싱 기능이 적용 가능하다.

- 캐시 사용으로 전체 응답시간, 성능, 서버의 자원 이용률을 향상시킨다.

 

◼ Self-descriptiveness (자체 표현 구조)

- REST API 메시지만 보고도 이를 쉽게 이해 할 수 있는 자체 표현 구조로 되어 있다.

 

◼ Client - Server 구조

- REST 서버는 API 를 제공하고 로직 처리 및 저장을 책임진다. 

- 클라이언트는 사용자 인증이나 컨텍스트(세션, 로그인 정보)등을 직접 관리한다.

- 각각의 역할이 확실히 구분되어 서로간의 의존성이 줄어든다.

 

◼ Layered System (계층형 구조)

- 클라이언트는 REST API server 만 호출한다.

- REST 서버는 다중 계층으로 구성될 수 있으며 보안, 로드 밸런싱, 암호화 계층을 추가해 구조를 변경할 수 있다.

- PROXY, 게이트웨이 같은 네트워크 기반의 중간 매체를 사용할 수 있다.



728x90

'Etc' 카테고리의 다른 글

TortoiseGit 설치하기  (0) 2023.03.17
윈도우즈 Git 설치하기  (0) 2023.03.17
[Android app] Calendar  (0) 2021.08.25
Firebase Hosting 권한 문제  (0) 2021.08.25
블로그에 소스코드 넣기 (Github Gist)  (0) 2021.05.18
댓글