brunch

You can make anything
by writing

C.S.Lewis

by florent Feb 19. 2024

PM을 위한 API 기초

제작: DALL-E


API(Application Programming Interface) 란?

- API는 어플리케이션 프로그래밍 인터페이스의 약자로, 간단히 말하면 두 가지 서로 다른 프로그램들간 소통이 가능하도록 하는 역할을 수행한다.

- 어플리케이션(application)이란 고유한 기능을 가진 소프트웨어를 의미한다.

- 인터페이스(interface)는 두 어플리케이션 간의 서비스적인 계약을 의미하며, 이 계약은 요청과 응답을 통해 서로 다른 두 어플리케이션이 통신하는 방법을 정의한다.

- API는 위의 계약을 통해 내부, 외부, 혹은 제 3자의 공급업자와 효과적으로 상호작용 하여 특정 가치를 창출하도록 한다.



API 아키텍처

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

- API 게이트웨이는 보안, 캐싱 및 *오스트레이션을 다루는 것으로, API의 내부 메커니즘으로 들어가는 진입로를 의미한다.

- 로드 밸런싱과 마이크로 서비스 파티션을 관리하는 역할을 수행한다.

- 웹, 모바일 등 다양한 장치에서 오는 트래픽을 필터링한다. 

*오케스트레이션(Orchestration): 여러 개의 컴퓨터 시스템, 애플리케이션 및/또는 서비스를 조율하고 관리하는 것

*로드 밸런싱(Load balancing): 애플리케이션을 지원하는 리소스 풀 전체에 네트워크 트래픽을 균등하게 배포하는 방법

*마이크로서비스(Microservice, Microservice Architecture또는 마이크로 서비스 아키텍처):는 단일 애플리케이션이 다수의 느슨하게 결합되고 독립적으로 배치 가능한 더 작은 구성요소 또는 서비스로 구성되는 클라우드 네이티브 아키텍처 접근 방식


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): 데이터를 정의하는 규칙을 제공하는 마크업 언어로, 다른 프로그래밍 언어와 달리 XML은 자체적으로 컴퓨팅 작업을 수행할 수 없으며, 대신 구조적 데이터 관리를 위해 모든 프로그래밍 언어 또는 소프트웨어를 구현할 수 있음


(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?parameter

- 베이스 URL(Base URL): 진입점을 나타내는 부분

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

- 엔드포인트

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

- 아웃풋: 어떤 방식으로 아웃풋 데이터를 받을지에 대한 부분으로, 일반적으로 JSON이나 XML 형식을 지님

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

- 파라미터: 전송 데이터(payload)에서 필요로 하는 것이 무엇인지 나타내는 부분

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


API의 유형

1. 사적 API(Priavte API)

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


2. 공적 API(Public API)

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


3. 파트너 API(Partner API)

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



Source

Reference


작가의 이전글 프로덕트 마케팅: 원칙적인 4가지 역할
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari