2022. 9. 26. 17:44ㆍandroid
Rest API에서 API 무엇인가요??
먼저 API란 쉽게 말하면 "원칙, 규칙" 입니다.
규칙은 합의한 사항이고 지켜야 하는 법칙입니다.
그럼 무엇을 어디에서 합의하고 지켜야하는걸까??
바로 " 서로 다른 애플리케이션, 소프트웨어 사이 " 에서 서비스를 제공하기 위한 " 일종의 통신 규약 " 입니다.
그렇다면 REST API 는 무엇인가요??
이제 REST API 를 알아보자.
REST API 를 한마디로 생각해보면
" REST API는 웹에서 데이터를 전송하고 처리하기 위해 정의한 인터페이스이다. "
라고 생각합니다.
더 디테일하게 말하면
" 웹과 같은 분산 하이퍼 미디어 시스템을 이용하는 소프트웨어 애플리케이션의 네트워크
통신을 위한 구조, 규약. " 입니다.
REST 는 Representational State Transfer 의 약자인데 그냥 어떤 사람이 논문에서 발표한 이름이라고 합니다.
REST 라는 이름으로 된 전송 규칙 정도라고 생각하면 될 것 같다.
현재 거의 대부분의 웹 애플리케이션과 사이트들에서 서버와 클라이언트가 통신하기 위해 Rest api를 사용합니다.
서버는 데이터를 가지고 있으며 누군가가 "나 데이터 좀 쓸게~" 하면 "요청한 데이터를 보내주는 곳"이고,
클라이언트는 데이터를 사용하는 사람이 될 수도 있고 , 컴퓨터, 앱, 사이트 등 "데이터를 사용하는 곳"을 클라이언트라고 합니다.
그 사이에 REST API 가 "서버야 너는 클라이언트한테 데이터를 이렇게 보내, 클라이언트는 서버한테 데이터를 이렇게 요청해! " 라고 중간에서 중개자 역할을 합니다.
REST 는
1. Resource URI
2. HTTP Method
3. Representaion
3개로 구성됩니다.
모든 자원은 고유한 ID 가 존재하고, URI 를 이용해서 Server에 요청합니다.
요청할 때는 HTTP Method 를 이용해 알려주고 서버는 클라이언트의 요청에 알맞은 Representation 을 전송( Transfer ) 합니다.
리소스는 무엇이든 될 수 있고, Representaion은 반환된 리소스가 아닌,
특정 시점에서의 리소스가 가지고 있는 "무언가" 또는 요청에 의해 Transfer 되어지는 그 어떤 것도 Representaion 이 될 수 있다고 합니다.
그래서 Representational " State " Transfer 라고 한다.
그럼 REST API 는 어떻게 서로 리소스를 전달할까?
1. HTTP URI( Uniform Resource Identifier ) 를 통해 리소스를 명시하고,
2. HTTP Method 를 통해 리소스로 어떤 작업을 할지 알려준다.
리소스를 명시하기 위한 규칙으로는
1. / 는 계층 관계를 나타낼 때 사용한다.
2. URI 마지막에는 / 를 포함하지 않는다.
3. - 은 URI 의 가독성을 위해 사용한다.
4. _ 은 사용하지 않는다.
5. 되도록 소문자로 적는다.
6. 확장자는 포함하지 않는다.
7. 리소스 간의 관계가 있다면 서브 리소스에 명시적으로 표현할 수 있다.
또한 리소스를 조작하기 위한 HTTP Method 의 행동에는
1. POST ( Create )
2. GET ( Read )
3. UPDATE ( Update )
4. DELETE ( Delete )
4개가 있습니다.
REST의 특징으로는
1. Server Client
= 클라이언트와 서버 구조로 각각의 역할에 따른 개발 영역이 구분되고 의존성이 줄어듭니다.
2. Stateless
= 요청만을 처리하면 됩니다. 다른 정보를 가지고 있지 않기 때문에 구현이 단순해집니다.
3. Cacheable
= HTTP 웹 표준을 그대로 사용해 캐싱 기능을 적용할 수 있습니다.
4. Layer System
= 클라이언트는 클라이언트와 서버 사이의 다른 승인된 중개자에게 연결할 수 있으며 여전히 서버로부터도 응답을 받습니다. 서버는 요청을 다른 서버로 전달할 수도 있습니다.
5. Code On Demand
= REST 아키텍처 스타일에서 서버는 소프트웨어 프로그래밍 코드를 클라이언트에 전송하여 클라이언트 기능을 일시적으로 확장하거나 사용자를 지정할 수 있습니다.
6. Uniform Interface
= 모든 RESTful 디자인의 기본입니다. 서버가 표준 형식으로 정보를 전송하기 위함이다.
이렇게 6개의 특징을 가지고 있습니다. ( 순서는 상관없습니다. )
마지막으로 정리하겠습니다.
" REST API는 분산 하이퍼 미디어 시스템(웹, 인터넷)을 이용하는 모든 서로 다른 소프트웨어, 애플리케이션 사이에서 REST 아키텍처를 이용하여 데이터를 http uri로 표현, http method 로 행위, 행위에 대한 표현 representation을 전송하고 처리하기 위해 정의한 인터페이스이다. "
RESTful API는 REST 아키텍처의 규칙을 잘 지켜 올바르게 설계한 REST API를 RESTful하다, RESTful API 이다 할 수 있습니다. 즉 REST API를 이용하는 모든 소프트웨어, 애플리케이션이 RESTful 하지 않으며 REST 통신 규약을 잘 따르고 신뢰 가능한 api 만이 Restful 하다 할 수 있습니다.
이상으로 Rest API , REST에 대해 간략하게 알아보았습니다.
읽어주셔서 감사합니다.
'android' 카테고리의 다른 글
Android Compose (0) | 2022.09.28 |
---|---|
안드로이드 4대 컴포넌트 (0) | 2022.09.26 |
Serialization(직렬화) & Deserialization(역직렬화) (0) | 2022.09.26 |
어노테이션 뜻, 이유, 장점 (2) | 2022.09.25 |
안드로이드 OS 구조 (1) | 2022.09.23 |