API

1c2·2024년 3월 31일
0

CS

목록 보기
3/18

API#1 개념

API (Application Programming Interface)는 두 이상의 컴퓨터 프로그램이 서로 통신하는 방법이자 컴퓨터 사이에 있는 중계 계층을 의미한다.

예를 들어, A라는 컴퓨터가 요청을 하고, B라는 컴퓨터가 응답을 한다고 했을 때, 어떻게 통신할 것인지, 어떠한 데이터를 주고받을 것인지 등에 대한 방법(HTTP, HTTPS 프로토콜을 사용할 것인지, GET, POST 등의 방식 등..)이 정의된 중계 계층을 말한다.

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

인터페이스

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

API의 작동 방식

API는 다음과 같이 중계 계층으로 끼어져 있어서 작동한다. 사용자가 브라우저를 통해서 서버에 요청을 하게 되면, API가 중계 계층 역할을 하며 요청을 처리한다. 직접 서버의 데이터베이스에 접근하는 것을 방지하는 역할도 한다.

예) https://www.naver.com/
네이버의 화면은 여러 API들의 응답값 등으로 이루어져 있다.

API의 장점

  1. 보안: 제공자는 서비스의 중요한 부분을 드러내지 않아도 된다. 예를 들어 DB 설계 구조나 드러내고 싶지 않은 데이터베이스의 테이블 정보, 서버의 상수값 등을 드러내지 않고 드러내고 싶은 부분만을 드러낼 수 있다.

  2. 편리성: 사용자는 해당 서비스가 어떻게 구현되는지 알 필요 없이 필요한 정보만을 받을 수 있다.

  3. 효율성: OPEN API의 경우 앱 개발 프로세스를 단순화 시키고, 시간과 비용을 절약할 수 있다. 예) 로그인: https://developers.naver.com/products/login/api/api.md

  4. 유연성: 내부 프로세스가 수정되었을 때, API를 매번 수정하는 것이 아닌 API가 수정되지 않게 만들 수 있다. 이를 통해 내부 DB, 서버의 로직이 변경되어도 매번 사용자가 앱을 업데이트하는 일은 줄어들 수 있다. 예) DB 튜닝

  5. 집계: 제공자는 데이터를 한 곳에 모을 수 있다. 예를 들어, '큰돌 예스24'라는 책을 파는 쇼핑몰을 만들었다고 하면, 해당 사이트에 방문하는 방문자, 어떤 특정한 것을 클릭하는 사용자에 대한 이벤트를 집계하고 싶을 때 해당 API를 만들고, 해당 이벤트가 발생하면 해당 API를 호출하게 만들면 해당 데이터를 한 곳에 모을 수 있다. 예) yes24의 베스트셀러, 검색 페이지에서의 사용자 이벤트

API의 종류

API는 사용 범위와 접근성에 따라 크게 두 가지로 분류할 수 있다: private와 public.

Private API

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

Public API

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

0개의 댓글