Skip to main content

API

  • API (Application Programming Interface) 는 둘 이상의 컴퓨터 프로그램이 서로 통신하는 방법이다.
  • 컴퓨터 사이에 있는 중계 계층을 의미한다.
  • ex) 프로토콜, 메서드, 데이터타입 등이 정의된 중계 계층
note

API는 과거부터 발전되어온 용어로 라이브러리 및 프레임워크를 설명하는 명세서, 웹 상에서 WEB API, Web Sockewt API 등을 가리키는데 현재를 기준으로 API라고 할 때 보통 WEB API를 기준으로 설명한다.

Interface

  • 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면이다.
  • 이를 통해 해당 컴퓨터의 내부 서버가 어떻게 구현되어 있는지는 상관없이 인터페이스를 통해 통신 등이 가능하다.

API의 장점

  • 제공자는 서비스의 중요한 부분을 드러내지 않아도 된다.

  • DB 설계 구조나 드러내고 싶지 않은 데이터베이스의 테이블 정보, 서버의 상수값 등을 드러내지 않고 드러내고 싶은 부분만 드러낼 수 있다.

  • 사용자는 해당 서비스가 어떻게 구현되는지 알 필요없이 필요한 정보만을 제공받아 쓸 수 있다.

  • OPEN API의 경우 앱 개발 프로세스를 단순화시키고 시간과 비용을 절약할 수 있다.

  • 내부 프로세스가 수정되었을 때 API를 매번 수정하는 것이 아닌 API가 수정이 안되게 만들 수 있다.

  • 내부 DB, 서버의 로직이 변경이 되어도 매번 사용자가 앱을 업데이트하는 일은 줄어들 수 있다. (ex. DB튜닝)

  • 제공자는 데이터를 한 곳에 모을 수 있다.

    • 해당 사이트에 방문하는 방문자, 어떤 특정한 것을 클릭하는 사용자에 대한 이벤트를 집계하고 싶을 때 해당 API를 만들고 해당 이벤트가 발생하면 해당 API를 호출하게 만들면 해당 데이터를 한 곳에 모을 수 있다. (ex. yes24의 베스트셀러, 검색페이지에서의 사용자 이벤트)

API의 종류

1. private

  • 내부적으로 사용되는 API 이다.
  • 주로 해시키를 하드코딩해놓고 이를 기반으로 서버와 서버간의 통신을 한다.
  • 비즈니스 파트너와도 사용될 수 있다.
  • 비밀스럽게 해당 파트너와 해시키를 공유하여 통신한다.

2. public

  • 모든 사람이 사용할 수 있다.
  • 많은 트래픽을 방지하기 위해 하루 요청 수의 제한, 계정당 제한 등으로 관리한다.