[TIL / Web] API

Changyun Go·2021년 9월 6일
2
post-thumbnail

[Web] API

  • API(Application Programming Interface)는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.
  • 개발자가 프로그램을 만드는데 필요한 어떤 기능을 직접 구현하지 않고 API 제공자들이 제공하는 데이터와 모듈 등을 갖다 쓸 수 있다.
  • 레스토랑에 비유하면 손님(내가 만드는 프로그램)이 웨이터(API)에게 주문을 하면 웨이터는 주문 내역을 주방(API 제공자)에 갖다 주고, 주방(API 제공자)에서 요리를 해서 웨이터에게 주면, 웨이터가 다시 나에게 음식을 가져다주는 형태이다.

과거


  • 1964년, 초창기 커다란 컴퓨터에서 하드웨어의 독립성을 위해 많이 사용된다.→ 각기 다른 하드웨어마다 개발자가 일일이 프로그램을 작성하지 않고 HAL(Hardware Abstraction Layer)이라는 하드웨어 추상화 계층을 통해 하드웨어가 변경되더라도 소프트웨어가 작동할 수 있는 플랫폼을 구축한다.
  • 1980년대 중반, Mac OS와 Windows가 등장하고 각각의 OS(Operating Systems)에서 동작하는 어플리케이션을 만들기 위해서 운영체제에서 제공하는 API(Application Programming Interfaces)를 이용하기 시작한다.

현재


  • 1990년대 이후, 인터넷이 대중화되고 다양한 기기에서 서버에 있는 데이터를 읽고 쓰기 위해 서버에서 제공하는 Web APIs를 이용하고 있다.
  • Web API를 어떻게 디자인해서 만들 건지 정의하는 프로토콜이 필요한데, 예전엔 SOAP(Simple Object Access Protocol)이 모든 네트워크의 요청과 반응을 XML이라는 데이터 포맷에 저장해서 주고받았지만, 요즘에는 REST를 주로 사용한다.

REST

  • REST는 4가지 기능을 가진다. → Post(Create data), Get(Read data), Put(Update data), Delete(Delete data)
  • Get을 이용해서 사용자에 대한 정보를 요청하면, 서버로부터 사용자에 대한 데이터를 JSON이라는 포맷을 통해 받아올 수 있다.

넓은 의미의 API


  • 내부의 구현 사항을 숨겨둔 채로 외부에서 사용하는 사람이 필요한 것만 노출해 둔 것을 API라고 부른다. → 프레임워크와 라이브러리에서 우리가 이용할 수 있는 클래스나 함수들을 API라고 부른다.

Open API(Public API)


  • 회사 내부에서 사용하는 Web API를 외부의 다른 개발자가 이용할 수 있도록 공개한 것이다. → 많은 개발자들이 독창적이고 재밌는 어플리케이션을 만들 수 있다.
  • 궁극적으로 서비스 커뮤니티에 많은 기여를 하기 때문에 많은 회사에서 Web API를 공개한다.
  • 사용법과 규격을 포함하는 API 문서가 공개되어 있지 않다면 Private API이다.
  • Open API라도 호출 횟수가 많아지면 비용을 지불해야 할 수도 있다.

P.S.

API라는 용어를 정말 많이 접했지만, 그동안 그 의미에 대해 명확하게 알지 못했는데 오늘을 기점으로 확실히 알게 되었다😄 다양한 API가 공개되고 사용되는 오늘날은 어쩌면 모든 개발자가 협업을 하고 있는 게 아닐까?

참고 문서


0개의 댓글