본문 바로가기
TIL/잡학다식

[잡학다식] RESTful API - API

by 죠르띠에 2022. 7. 28.

REST API을 알아보기 전에 API에 대해 알보도록 하자.

 

아래에 정리된 내용들은 AWS에서 가져왔음을 밝힌다.

 

API란 무엇인가요? - API 초보자를 위한 가이드 - AWS

 

aws.amazon.com

 

API가 뭘까

API는 정의 및 프로토콜 집합을 사용하여 두 소프웨어 구성 요소가 서로 통신을 할 수 있게 하는 매커니즘이다.

 

API는 Application Programming Interface의 약자이고, API의 애플리케이션은 고유한 기능을 가진 모든 소프트웨어를 나타낸다. 인터페이스는 두 애플리케이션 간의 서비스 계약이라고 할 수 있다. 이 계약은 요청응답을 사용하여 두 애플리케이션이 서로 통신하는 방법을 정의한다. API 문서에는 개발자가 이러한 요청과 응답을 구성하는 방법에 대한 정보가 들어 있다.

 

 

API는 어떻게 작동할까

API는 일반적으로 클라이언트와 서버 측면에서 설명된다.

  • 요청을 보내는 애플리케이션을 클라이언트
  • 응답을 보내는 애플리케이션을 서버

예를 들어, 쇼핑몰 포인트 정보 데이터베이스는 서버이고 쇼핑몰 앱은 클라이언트이다.

 

API가 생성된 시기와 이유에 따라 네 가지 방식으로 작동할 수 있다.

  1. SOAP API
    SOAP는 Simple Object Access Protocol의 약자이고 단순 객체 접근 프로토콜이라고 한다. 클라이언트와 서버는 XML을 사용하여 메세지를 교환한다. 과거에 많이 사용되었고 유연성이 떨어진다.
  2. RPC API
    RPC는 Remote Procedure Call의 약자이고 원격 프로시저 호출이라고 한다. 클라이언트가 서버에서 함수나 프로시저를 완료하면 서버가 출력을 클라이언트로 다시 전송한다.
  3. Websocket API
    JSON 객체를 사용하여 데이터를 전달하는 또 다른 최신 웹 API이다. 클라이언트 앱과 서버 간의 양방향 통신을 지원하고 서버가 연결된 클라이언트에 콜백 메시지를 전송할 수 있어서 REST API보다 효율적이다.
  4. REST API
    웹에서 볼 수 있는 가장 많이 사용되는 API이다. 클라이언트가 서버에 요청을 데이터로 전송하고, 서버가 이 클라이언트 요청을 사용하여 내부 함수를 시작하고 출력 데이터를 다시 클라이언트에 반환한다.

REST API는 다음 시간에 더 자세히 알아 볼 예정이다.

 

 

API의 다른 유형

API는 아키텍처와 사용 범위에 따라 분류된다.

  1. Private API
    Private API는 기업 내부에 있고 비즈니스 내에서 시스템과 데이터를 연결하는 데만 사용한다.
  2. Public API
    Public API는 일반 사용자에게 공개되며 누구나 사용할 수 있다. 이러한 유형의 API와 관련된 권한 부여와 비용이 있을 수도 있고 없을 수도 있다.
  3. Partner API
    B2B 파트너쉽을 지원하기 위해 권한이 부여된 외부 개발자만 액세스 할 수 있다.
  4. Complex API
    두 개 이상의 서로 다른 API를 결합하여 복잡한 시스템 요구 사항이나 동작을 처리한다.

 

 

API 엔드포인트

API 엔드포인트는 API 통신 시스템의 최종 접점이다. 여기에는 서버 URL, 서비스 및 시스템 간의 정보가 담겨있다.

API 엔드포인트는 두 가지 이유로 중요하다.

  1. 보안
    시스템을 공격에 취약하게 만든다.
  2. 성능
    트래픽이 많은 엔드 포인트는 병목 현상을 일으키고 시스템 성능에 영향을 줄 수 있다.

 

 

마무리

항상 REST API에 대해 질문을 받으면 답하지 못했다. 왜냐하면 MES를 개발하면서 API를 개발하면 REST API가 아닌 단순 API를 개발했기때문이다. REST API에 대해 글을 작성하기 전에 API에 대해 글을 작성한 이유도 마찬가지다.

REST API는 개발하는데 규약이 있고, 그 규약에 맞게 개발이 되어야 REST API라고 할 수 있는 것으로 알고 있다.

이렇게 API에 대해 정리를 해보니까 느낌적으로 단순 API와 REST API의 차이점을 알 수 있을 것 같다.