컴퓨터 공학 & 통신

[개념 정리] API

왈왈디 2023. 6. 27. 14:59
728x90

API (Application Programming Interface)란 둘 이상의 컴퓨터 프로그램이 서로 통신하는 방법이자, 컴퓨터 간에 존재하는 중계 계층이다.

 

즉, 두 컴퓨터 간의 통신 과정에서 프로토콜, 메서드, 데이터 타입이 정의된 중계 계층이다.

 

인터페이스

API는 프로그램 간의 인터페이스이다.

여기서 인터페이스란 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고 받는 접점/경계면을 말한다.

해당 컴퓨터나 프로그램의 내부 설계가 어떻게 구현되어 있는지와 관계 없이 인터페이스를 통해 통신이 가능하다.

 

예를 들어 UI(User Interface)는 사람과 컴퓨터 간의 접점/경계면을 말한다. 

사람들은 UI를 통해 컴퓨터와 상호작용 하며, 컴퓨터 내부가 어떻게 구현되었는지는 신경 쓰지 않을 수 있다.

 

작동 방식

web API를 통한 통신 구조

사용자가 브라우저를 통해 서버에 요청을 보내면, API가 중계 계층 역할을 하여 요청을 처리한다.

직접 서버의 데이터베이스에 접근하는 것을 방지하기도 한다.

 

장점

  1. 서비스의 중요한 부분을 드러내지 않을 수 있다. 예를 들어, DB의 설계 구조나 드러내고 싶지 않은 정보, 서버의 상수 데이터 등을 공개하지 않고 서비스를 제공할 수 있다.
  2. 사용자는 복잡한 서비스의 구조를 알 필요 없이 필요한 정보를 이용할 수 있다.
  3. Open API를 활용하면 개발 프로세스를 단순화하고 시간과 비용을 절약할 수 있다.
  4. DB 등에 수정이 있더라도 동일한 API로 사용 가능하다면, 사용자가 영향을 받지 않을 수 있다. 사용자 업데이트 빈도를 줄일 수 있는 장점이다.
  5. 개발자가 원하는 방식으로 데이터를 모을 수 있다. 예를 들어 클릭 이벤트 발생 시 횟수를 집계하고 싶다면, 이벤트 발생 시 API를 호출하도록 하여 데이터를 모을 수 있다.

 

종류

  • private: 내부적으로 사용되는 API로, 주로 해시키를 하드 코딩하여 이를 기반으로 서버와 서버 간의 통신이 이루어진다. 비즈니스 파트너와 비밀스럽게 통신하는 경우에도 사용된다.
  • public: 누구나 사용할 수 있는 API이다. 오픈 API가 이에 해당한다. 많은 트래픽을 방지하기 위해 하루 요청 수 제한, 계정당 요청 수 제한 등이 있는 경우가 많다.

 

참고: inflearn 강의 'CS 지식의 정석 - 큰돌'

728x90