잡담

Rest API❓❓ Restful❓❓

민철킹 2021. 3. 10. 11:45

흔히 Rest API, Restful API와 같은 용어들을 자주 들어보았을텐데 이것이 무엇일까?

 

Rest라는 말에 대해 알아보기전에 먼저 API라는 개념부터 알아야한다.

 


API ❓❓

API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. 

 

이것을 쉽게 설명해보면 우리는 UI가 어떤 것인지 알고 있다. User Interface로써 사용자와 프로그램을 연결시켜주는 매개체이다. 이와 같이 API는 애플리케이션 사이를 연결해주는 매개체라고 생각하면 이해가 빠를 것이다.

 

EX) 음식점

  • 주문 프로그램 (손님 역할) 
  • 요리 프로그램 (요리사 역할)
  • 그렇다면 이 두개의 프로그램 사이에서 서로의 요청을 전달해주는 상호작용을 도와주는 어떤 것이 필요한데 그 역할 하는 것이 API이다.

 

API의 역할

  • 서버와 데이터베이스에 대한 출입구 역할을 한다.
    • 허용된 사람에게만 접근성 부여
  • 애플리케이션과 기기가 원활하게 통신을 할 수 있게 한다.
  • 모든 접속을 표준화시켜줌
    • 기계 / 운영체제에 상관없이 동일한 액세스를 얻는다

 

API 유형

  • private API
    • 내부 API로써, 회사 개발자가 자체 제품이나 서비스를 개선하기 위한 목적으로 발행
    • 외부인에게 노출되지 않음
  • public API
 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

 

공공데이터 포털

국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datase

www.data.go.kr

  • partner API
    • 기업이 데이터 공유에 동의하는 특정인들만 사용가능. 
    • 비지니스 관계에서 사용되는 편, 파트너 회사 간의 SW 통합과정에서 사용되기도 함

 

API 사용시 얻을 수 있는 효과

  • 구현 방식을 알지 못해도 제품 또는 서비스가 서로 상호작용할 수 있다.
  • 애플리케이션 개발을 간소화하여 시간과 비용을 절약할 수 있다.
  • 새로운 툴과 제품을 설계하거나 기준 툴과 제품을 관리할 때, API는 유연성을 제공하고 설계, 관리, 사용 방법을 간소화해준다.
  • 새로운 애플리케이션 구성 요소를 기존 아키텍처에 통합하는 방식을 간소화하므로 비지니스 팀과 개발 팀 간의 협업에도 도움을 준다.

 


 

Rest API🐶

REST 자원(Resource)을 정의하고 자원에 대한 주소(URL)를 지정하는 방법을 의미합니다.

REST API(RESTful API, 레스트풀 API)란 REST 아키텍처의 제약 조건을 준수하는 애플리케이션 프로그래밍 인터페이스를 뜻합니다. REST는 Representational State Transfer의 줄임말입니다.

 

API 개발자는 REST를 다양한 방식으로 구현할 수 있다. RESTful API를 통해 요청이 수행될 때 RESTful API는 리소스 상태에 대한 표현을 요청자에게 전송한다. 이 정보 표현은 JSON, HTML, XLT 또는 일반 텍스트를 통해 몇 가지 형식으로 전송된다. (JSON이 가장 널리 사용되고 있음)

 

API가 RESTful로 간주되려면 다음 기준을 따라야 한다.

  • 클라이언트, 서버 및 리소스로 구성되었으며 요청이 HTTP를 통해 관리되는 클라이언트-서버 아키텍처
  • stateless 클라이언트-서버 커뮤니케이션 
    • 요청 간에 클라이언트 정보가 서버에 저장되지 않으며, 각 요청이 분리되어 서로 연결 X
  • 클라이언트-서버 상호 작용을 간소화하는 캐시 기능 데이터
  • 정보가 표준 형식으로 전송되도록 하기 위한 구성 요소 간 통합 인터페이스
    • HTTP표준만 따른다면 어떤 언어, 어떤 플랫폼에서도 사용 가능해야함.
  • 요청된 정보를 검색하는데 관련된 서버의 각 유형을 클라이언트가 볼 수 없는 계층 구조로 체계화하는 계층화된 시스템
  • Self-descriptiveness (자체 표현 구조)
    • Rest API 메시지만 보고도 쉽게 이해할 수 있는 자체 표현 구조로 설계해야 함

 

참고 문서

blog.bearer.sh/what-is-a-rest-api/

 

What is a REST API?

When working with APIs you may come across the term REST or RESTful. REST architecture makes designing the API easier and using the API more predictable.

blog.bearer.sh

 

 

현실(실무)에는 막상이 REST조건을 지키며 API를 개발하는 것은 매우 까다롭고 경우에 따라서 불가능한 경우도 있다고 한다.

반응형