프로덕트 및 경영

[PM을 위한 API 기초] 아키텍처, 포탈, 엔드포인트, 유형

이 글은 APIs for Product Managers를 번역, 의역, 재구성한 글입니다.

API(Application Programming Interface)란?

  • API는 어플리케이션 프로그래밍 인터페이스의 약자로, 간단히 말하면 두 가지 서로 다른 프로그램들간 소통이 가능하도록 하는 역할을 수행한다.
  • 어플리케이션(application)이란 고유한 기능을 가진 소프트웨어를 의미한다.
  • 인터페이스(interface)는 두 어플리케이션 간의 서비스적인 계약을 의미하며, 이 계약은 요청과 응답을 통해 서로 다른 두 어플리케이션이 통신하는 방법을 정의한다.
  • API는 위의 계약을 통해 내부, 외부, 혹은 제 3자의 공급업자와 효과적으로 상호작용 하여 특정 가치를 창출하도록 한다.

API 아키텍처

1. API 게이트웨이(API Gateway)

  • API 게이트웨이는 보안, 캐싱 및 오케스트레이션을 다루는 것으로, API의 내부 메커니즘으로 들어가는 진입로를 의미한다.
  • 로드 밸런싱과 마이크로 서비스 파티션을 관리하는 역할을 수행한다.
  • 웹, 모바일 등 다양한 장치에서 오는 트래픽을 필터링한다.

용어 정리:
– 오케스트레이션(Orchestration): 여러 개의 컴퓨터 시스템, 애플리케이션 및/또는 서비스를 조율하고 관리하는 것
– 로드 밸런싱(Load balancing): 애플리케이션을 지원하는 리소스 풀 전체에 네트워크 트래픽을 균등하게 배포하는 방법
– 마이크로서비스(Microservice): 단일 애플리케이션이 다수의 느슨하게 결합되고 독립적으로 배치 가능한 더 작은 구성요소 또는 서비스로 구성되는 클라우드 네이티브 아키텍처 접근 방식

2. API 포탈(API Portal)

  • API 공급자와 소비자간의 다리 역할을 수행한다.
  • API 포탈은 API 분석, API 문서, API 마케팅, 웹/앱 어플리케이션과의 호환성, API의 노출 방법 등을 다룬다.

3. API 작동 방식

(1) SOAP API (Simple Object Access Protocol)

  • 단순 객체 접근 프로토콜의 약자
  • XML을 사용하여 클라이언트와 서버가 통신
  • 과거에 많이 사용한 API로, 유연성이 떨어짐

*XML(Extensible Markup Language): 데이터를 정의하는 규칙을 제공하는 마크업 언어

(2) RPC API (Remote Procedure Calls)

  • 원격 프로시저 호출의 약자
  • 클라이언트가 서버에서 기능을 수행한 다음 다시 서버가 응답을 클라이언트에게 보내는 방식

(3) 웹소켓 API (Websocket API)

  • JSON을 통해 데이터를 전송하는 현대적인 API 방식
  • 양방향 통신이 가능하다는 것이 핵심

*JSON(JavaScript Object Notation): Javascript 객체 문법으로 구조화된 데이터를 표현하기 위한 문자 기반의 표준 포맷

(4) REST API (Representational State Transfer)

  • 대표 상태 전송의 약자
  • 현재 가장 많이 쓰이고 있는 형식으로, 클라이언트가 서버 데이터에 접근할 수 있도록 GET, PUT, DELETE 등과 같은 일련의 함수를 정의
  • 클라이언트와 서버는 데이터 전송을 위해 HTTP 프로토콜을 사용

4. API 엔드포인트(API End-point)

API 엔드포인트는 API 통신 시스템에서 최종 접점을 의미한다.

URL 예시: https://maps.googleapis.com/maps/api/place/textsearch/output?parameters

  • 베이스 URL(Base URL): https://maps.googleapis.com — 진입점을 나타내는 부분
  • 엔드포인트: /maps/api/place/textsearch — API의 특정 리소스 경로
  • 아웃풋: /output — 어떤 방식으로 아웃풋 데이터를 받을지에 대한 부분으로, 일반적으로 JSON이나 XML 형식
  • 파라미터: ?parameters — 전송 데이터(payload)에서 필요로 하는 것이 무엇인지 나타내는 부분

API의 유형

1. 사적 API(Private API)

조직 내부(in-house)에서 주로 사용되는 API이며, 때때로 제3자의 시스템과 통신하기도 함

2. 공적 API(Public API)

오픈 소스로 공개되어 있는 API

3. 파트너 API(Partner API)

B2B 관계상 특정 작업이나 목적을 위해 만들어진 API로, 권한을 부여받은 사용자들만이 접근 가능함

← 이전 글[프로덕트 마케팅] (2) 네 가지 역할: 대사, 전략가, 스토리텔러, 전도사다음 글 →[프로덕트 마케팅 플레이북] (1) 프로덕트 마케팅의 정의와 시장의 이해