📌 API
- API(Application Programing Interface)
- API는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공한다.
- 즉, API는 프로그램들이 서로 상호작용하는 것을 도와주는 매개체이자 규칙으로 볼 수 있다.
👉 API의 역할
- 서버와 데이터베이스에 대한 출입구 역할은 한다.
데이터베이스에는 정보들이 저장되는데 모든 사람들이 이 데이터베이스에 접근할 수 있으면 안 될 것이다.
API는 이를 방지하기 위해 여러분이 가진 서버와 데이터베이스에 대한 출입구 역할을 하며, 허용된 사람들에게만 접근성을 부여한다. - 애플리케이션과 기기가 원활하게 통신할 수 있도록 한다.
API는 애플리케이션과 기기가 데이터를 원활히 주고받을 수 이도록 돕는 역할을 한다. - 모든 접속을 표준화한다.
API는 모든 접속을 표준화하기 때문에 기계 / 운영체제 등과 상관없이 누구나 동일한 액세스를 얻을 수 있다.
그래서 API는 범용 플러그처럼 작동한다고 볼 수 있다.
📌 REST API 와 RESTful API
👉 REST
REST는 자원의 이름(자원의 표현)으로 구분해 해당 자원의 상태(정보)를 주고받는 모든 것을 의미한다. 즉 자원(resource)의 표현(representation)에 의한 상태 전달을 뜻한다.
- 자원(resoure) : 해당 소프트웨어가 관리하는 모든 것 ( 문서, 그림, 데이터, 해당 소프트웨어 자체 등 )
- 표현 : 그 자원을 표현하기 위한 이름 ( DB의 학생 정보가 자원이면, 'students'를 자원의 표현으로 정함 )
- 상태 전달 : 데이터가 요청되는 시점에 자원의 상태를 전달한다. ( JSON 혹은 XML을 통해 데이터를 주고 받는 것이 일반적 )
자원은 해당 소프트웨어가 관리하는 모든 것으로 문서, 그림, 데이터, 해당 소프트웨어 자체 등이다. 자원의 표현은 그 자원을 표현하기 위한 이름이다. 예를 들어, DB의 학생 정보가 자원일 때, student를 자원의 표현으로 정한다. 상태(정보) 전달은 데이터가 요청되는 시점에서 자원의 상태(정보)를 전달한다. JSON 혹은 XML을 통해 데이터를 주고받는 것이 일반적이다.
REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이며, 네트워크 상에서 Client와 Servere 사이의 통신 방식 중 하나이다.
URI와 URL의 차이점?
URL은 Uniform Resource Locator로 인터넷 상 자원의 위치를 의미한다.
반면 URI는 Uniform Resource Identifier로 인터넷 상의 자원을 식별하기 위한 문자열의 구성으로,
URI는 URL을 포함하게 된다. URI가 URL보다 포괄적인 범위라고 할 수 있다.
👉 REST의 구성 요소
- 자원(Resource) : URI
- 모든 자원에 고유한 ID가 존재하고, 이 자원은 Server에 존재한다.
- 자원을 구별하는 ID는 '/members/:membe_id'와 같은 HTTP URI다.
- Client는 URI를 이용해서 자원을 지정하고 해당 자원의 상태(정보)에 대한 조작을 Server에 요청한다. - 행위(Verb) : HTTP Method
- HTTP 프로토콜의 Method를 사용한다.
- HTTP 프로토콜은 GET, POST, PUT, DELETE와 같은 메서드를 제공한다. - 표현(Representation of Resource)
- Client가 자원의 상태(정보)에 대한 조작을 요청하면 Server는 이에 적절한 응답(Representation)을 보낸다.
- REST에서 하나의 자원은 JSON, XML, TEXT, RSS 등 여러 형태의 Representation으로 나타내어질 수 있다.
- JSON 혹은 XML을 통해 데이터를 주고받는 것이 일반적이다.
- ** Java의 Controller에서 @RequestBody를 써야지만 JSON 형태 전송을 수신할 수 있다.
👉 REST API
REST API란 REST 아키텍처의 제약 조건을 준수하는 애플리케이션 프로그래밍 인터페이스를 뜻한다.
REST의 특징을 기반으로 서비스 API를 구현한 것이고, 정리하자면 리소스를 어떻게 하겠다.(HTTP Method + Payload)를 구조적으로 깔끔하게 표현하는 방법이다.
API는 정의된 규칙이기 때문에 개발자가 직접 정의할 수도 있지만, 수많은 규칙들이 존재하고 서로 상이하다면 정보 교환이 어려워진다. 그래서 규칙을 통일하게 되었고 이때 만든 통일된 규칙이 REST API이다.
REST API의 가장 큰 특징은 각 요청이 어떤 동작이나 정보를 위한 것인지를 그 요청의 모습 자체로 추론이 가능하다는 것이다. HTTP 표준을 기반으로 구현하므로, HTTP를 지원하는 프로그램 언어로 클라이언트, 서버를 구현 할 수 있다.
👉 REST API의 구성 요소
- 클라이언트 : 통신을 시작하는 사용자 측(자신의 장치에서)에서 시작된 클라이언트 또는 프로그램
- 서버 : API를 기능 및 데이터에 대한 액세스로 사용하는 서버
- 자원 : 서버가 클라이언트에 전송하는 모든 콘텐츠(비디오,텍스트,사진)
👉 REST API의 작동 방식
REST API는 HTTP 요청을 통해 통신하여 데이터 생성, 읽기, 업데이트 및 삭제 기능을 완료한다.
CRUD(Create, Read, Update, Delete) 연산 이라고도 하며, REST는 요청된 리소스에 대한 정보를 제공하고 리소스로 수행할 작업을 설명하는 네 가지 방법을 사용한다.
HTTP Methods
HTTP 프로토콜은 GET, POST, PUT, DELETE의 Method를 제공한다.
- GET - Read : 리소스 요청(불러와줘)
- POST - Create : 리소스 생성(생성해줘)
- PUT - Udate : 리소스 업데이트(바꿔줘)
- DELETE - Delete : 리소스 삭제(지워줘)
RESTful API
RESTful은 REST의 설계 규칙을 잘 지켜서 설계된 API를 뜻한다. 일반적으로 REST라는 아키텍쳐를 구현하는 웹 서비스를 나타내기 위해 사용되는 용어이다. RESTful 하게 만든 API는 요청을 보내는 주소만으로도 어떤 것을 요청하는지 파악이 가능하다고 한다.
👉 REST API와 RESTful API의 차이
- 요약하자면 REST API는 REST 원칙을 따르지 않더라도 동작할 수 있지만, RESTful API는 REST 원칙을 엄격하게 준수하여 자원을 표현하고 상호작용하는 방식으로 설계된 API를 의미한다.
📌 Open API
Open API는 누구나 사용할 수 있도록 공개된 API이다. 즉, API 중 플랫폼 기능, 콘테츠를 외부에서 웹 프로토콜(HTTP)로 호출하여 사용할 수 있게 개방한 API를 의미한다.
처음부터 모든 것을 개발하려면 시간과 비용이 많이 들겠지만 Open API를 사용하면 유용한 기능들을 빠르게 구현할 수 있는 장점이 있다.
Open API를 사용하면 서비스 사용자는 키를 발급받을 수 있는데 해당 키에 따라 할당량을 부여받고, 할당량을 초과할 경우 과금되기도 한다.
'IT > 용어정리' 카테고리의 다른 글
DDoS(Distributed Denial of Service) 와 DoS (0) | 2023.11.30 |
---|---|
트랜잭션 (0) | 2023.11.23 |
4장 API와 JSON (1) | 2023.10.25 |
[자료구조] 스택(Stack)과 큐(Queue) (0) | 2023.10.23 |
CI / CD (0) | 2023.10.19 |