16-1. API란?

Rest API를 들어가기 앞서서 API가 무엇인지 알아보자.

API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)는 컴퓨터나 컴퓨터 프로그램 사이의 연결이다. 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 해주는 인터페이스를 뜻한다. 인터페이스를 빌드하거나 사용하는 방법을 기술하는 문서 혹은 표준을 API 사양이라고 한다. [1]

<aside> 💡 Interface(인터페이스)? 서로 다른 사물이나 시스템 간에 연결하고 소통할 수 있게 하는 매개체를 의미한다.

</aside>

알잘깔딱센 JavaScript

알잘깔딱센 JavaScript

여러분이 식당에 있는 상황이라고 가정을 해보자. 메뉴를 선택하고 점원에게 선택한 메뉴를 말하면 점원은 주문 받은 내용을 요리사에게 전달하고 다 만든 요리를 점원에게 준다. 점원은 손님에게 요리를 가져다준다. 이때 점원은 손님에게 주문을 받고, 그 내용을 요리사에게 요청한 뒤 음식을 손님에게 전달해주는 역할을 한다. API는 점원과 같은 역할을 한다. API(점원)는 프로그램(손님)이 명령(주문)을 받으면 프로그램(요리사)과 상호작용하여 명령에 대한 결과(요청된 음식)를 전달한다. 그렇다면 왜 손님이 요리사와 상호작용을 할 수는 없는 것일까? 만약 요리사가 프랑스인이고 점원은 의사소통이 가능하지만 손님과 대화하기는 어렵다. 또 다른 경우는 손님이 질문을 했을 때 요리사가 그에 대한 답변을 할 때 전문 용어를 사용한다면 점원은 이해하지만 손님을 그 뜻을 이해하기 힘들다. 이럴 때 점원은 손님에게 알아듣기 쉽게 전달해줄 수 있는 역할이 된다.

“API는 프로그램들이 서로 상호작용 할 수 있도록 하는 매개체이다.”

16-1-1. API 유형

API는 애플리케이션에서 광범위하게 사용된다. 일반적으로 사용되는 API에는 private, public, partner, composite 네가지 유형이 있다. API 유형은 공개 범위에 따라 유형이 달라진다.

  1. Private API(내부, 비공개) : 조직 내에서 시스템과 데이터를 연결하기 위해 조직 내에서만 사용하기 위한 것이다. 조직 내에서 일하는 개발자가 사용할 수 있도록 백엔드 데이터 및 애플리케이션 기능의 일부를 여는 인터페이스이기도 하다. 조직에서 만든 새로운 애플리케이션이 공개적으로 배포할 수 있지만 외부에서 API에 접근 할 수는 없다.

  2. Public API(오픈, 공개) ****: 웹 및 모바일 개발자가 쉽게 접근하고 사용할 수 있도록 설계한 인터페이스이다. 모두에게 공개되어 누구나 사용 할 수 있다. 오픈 API를 사용하여 시간을 줄이고 비용을 절감할 수 있다. 공개 API는 일반적으로 보통의 인증 및 권한 부여를 포함한다.

  3. Partner API(파트너) : 비즈니스 파트너 또는 조직 외부에서 허가된 사람에게 제공되는 API이다. 공개적으로 사용할 수 없으며 액세스 할 수 있는 특정 권한이 필요하다. 보통 공개 API 개발자 사이트에 있지만 파트너 API는 오픈 API와 달리 완전히 오픈되어 있지 않고 특정 액세스 설정을 해야한다.

  4. Composite API(복합) : 두 개 이상의 API를 결합하여 사용하는 것이다. 복합 API는 복잡하거나 밀접하게 관련된 API 동작을 처리하는 데 도움이 될 수 있으며, 때로는 개별 API보다 속도와 성능을 향상 시킬 수 있다.