REST API에 관한 영상(www.youtube.com/watch?v=u65F4ECaKaY) 내용에 대한 개념 정리
- REST API ( Representational State Transfer / Application Programming Interface )
REST API에 관한 정보를 찾는 과정에서 아키텍쳐(Architecture)라는 단어를 접하게 되어,
먼저 정의하고 REST API에 대해 알아보겠다.
1) 프로그래밍에서 아키텍처란?
- 시스템 목적을 달성하기위해 시스템의 상호작용 등의 시스템디자인에 대한 제약 및 설계
: 최적화를 목표로 두고 시스템 구성과 동작원리 그리고 시스템의 구성환경 등을 설명 및 설계하는 청사진 또는 설계도.
컴퓨터 공학 지식을 기반으로 주변 환경 등을 고려하여 최상의 소프트웨어를 구상하기 위함.
2) REST API
- (공식화된 표준이 존재하지 않는) 분산 시스템 설계를 위한 아키텍처 스타일
: 이에 해당하는 아키텍처 스타일을 만족하는 API를 RESTful 하다고 표현한다.
* 특징
1) 유니폼 인터페이스 ( Uniform Interface
: resource에 대한 조작을 통일되고 한정적인 interface로 실행.
2) 무상태성 ( Stateless )
: 작업을 위한 상태 정보를 따로 저장하여 관리하지 않고, 단순히 서버에 들어오는 요청만 처리.
3) 캐시 가능 ( Cachable )
: HTTP 웹 표준을 그대로 사용하기 때문에 기존의 웹 인프라( cache )를 그대로 사용 가능.
4) Self-descriptiveness
: REST API의 message만으로도 어떤 의미인지 이해할 수 있음.
5) 클라이언트 - 서버 구조
: 서버는 클라이언트에게 API를 제공하고, 클라이언트는 서버에 사용자 인증(로그인) 등을 하도록 역할이 구분됨.
6) 계층형 구조
: 암호화 계층을 추가하거나, proxy, gateway 등의 네트워크 간 중간 역할을 하는 요소를 사용할 수 있다.
* REST API가 필요한 이유(장점)
1) REST API 메시지의 의도를 명확하게 파악할 수 있다.
: 의도가 명확하므로 필요한 데이터만 요청, 응답하면 된다.
2) JSON, XML 등 다양한 언어로 작성이 가능.
: Header에 URI 처리 메소드를 명시함으로써, 필요한 실제 데이터를 페이로드(body)에 표현.