REST API, RESTFul

마자나다·2023년 12월 1일
0

네트워크

목록 보기
4/5

API란?

  • Apllication Programming Interface의 약자로, 소프트웨어 응용 프로그램에서 다른 소프트웨어 구성요소 또는 서비스와 상호작용하기 위한 인터페이스를 제공하는 프로그래밍 기술이다.

조금 쉽게 설명하자면, 식당에 들어간 손님이 점원에게 메뉴를 주문하면 주방에게 점원이 메뉴를 말하고, 그 메뉴에 따라 나온 음식을 점원이 고객에게 전달한다
이 과정에서 점원이 API의 역할을 하고 있다.

API의 형태

  1. 웹 API
  • 웹 API는 인터넷을 통해 다른 웹서비스나 어플리케이션을 통신하기 위해 설계되 API이다. 일반적으로 HTTP를 사용하여 통신한다.
  • 나중에 정리할 REST API, SOAP API등 다양한 형태로 데이터의 검색, 업데이트, 삭제등을 할 수 있다.
    웹 API의 표준은 SOAP API이다. 그런데 사용이 너무나 복잡하다. 때문에 잘 쓰이진 않는다.
    SOAP는 정확한 표준이 있지만 REST는 정확한 표준이 없다. 때문에 둘의 개념은 조금 다르다.

  1. 라이브러리 API
  • 라이브러리 API는 특정 프로그래밍 언어에서 사용되는 함수와 클래스를 사용하여 상호작용 할 수 있도록 인터페이스를 제공한다.

여러가지 형태로 존재하는 API의 예시

- 휴대전화에서 Expeia같은 앱을 가져오거나, Slack에서 구글 드라이브를 연결하거나, 페이스북과 인스타그램에 동시에 사진을 게시하는것 등 여러모로 API의 역할이 존재한다.

REST란?

Representational State Transfer의 약자로, 웹 서비스 아키텍쳐의 스타일 중 하나이다.
REST는 자원을 표현하고 상태를 전송하기 위한 방법을 제공하는 웹서비스 디자인 원칙을 나타낸다.
HTTP통신에서 서버와 클라이언트가 통신하는 방식을 말한다.

REST가 필요한 이유.

  • 어플리케이션의 분리 및 통합, 다양한 클라이언트의 등장 : 최근의 서버 프로그램은 다양한 브라우저와 안드로이드, 아이폰과 같은 모바일 디바이스에서도 통신할 수 있어야 한다.

REST의 개념

  • HTTP URL을 통해서 자원을 식별한다.
  • HTTP 메소드(GET, POST, PUT, DELETE 등)을 사용해서 자원에 CRUD Operation을 요청한다.
    메소드가 4개 말고도 다양하게 있다. 대표적으로 쓰이는 메소드가 위에서 말한 4가지이다.
  • REST는 상태를 관리하지 않는 아키텍쳐로 클라이언트 서버 간의 통신을 간단하고 분리된 형태로 만든다.

REST의 장단점

  • 장점
    1. HTTP프로토콜의 인프라를 그대로 사용함으로, REST API사용을 위한 별도의 인프라를 구축할 필요가 없다.
    2. HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하다.
    3. HTTP 프로토콜의 표준을 최대한 활용하여 추가 장점을 함께 가져갈 수 있다.
  • 단점
    1. 표준이 존재하지 않는다.

REST API란?

  • 앞서나온 개념인 REST의 특징을 기반으로 API프로토콜을 제공하는 것이다.
  • 클라이언트는 HTTP 요청을 사용하여 REST API를 호출하고 서버는 HTTP응답을 통해 응답한다.

REST API 특징

  1. 사내 시스템들도 REST기반으로 시스템을 분산해 확정성, 재사용성을 높여 유지보수 및 운용을 편리하게 한다.
  2. REST는 HTTP표준을 기반으로 구현함으로, HTTP를 지원하는 프로그램언어로 클라이언트, 서버를 구현할 수 있다.

RESTFul이란?

  • 이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것이다.
  • 웹서비스가 REST 원칙을 준수하고 있는지를 나타내는 형용사이다.

RESTFul의 특징

  • 자원(URL)을 사용하여 표현된다.
  • HTTP메서드를 사용하여 자원에 대한 작업을 수행한다.
  • 무상태 서버와 통신한다.
  • 다양한 데이터형식 (JSON, XML등)지원한다.
  • 자원 간 연결을 통해 서비스를 표현한다.
    현실적으론 RESTFul하게 짜는건 힘들다 절대적인 기준은 아니다.
요약
1. API는 원하는 데이터를 가져오기 위한 인터페이스이다.
2. REST는 웹 데이터 교환을 위한 스타일중 하나이다
3. HTTP에서 통신 방식중 하나가 REST이다.
4. REST API는 REST 기반의 API
5. RESTFul은 REST를 잘 지킨 API 근데 다 지키긴 어려움... 

참고 및 출처

https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html

profile
우왕좌왕 개발

0개의 댓글

관련 채용 정보