API를 사용하면 애플리케이션이 API 호출을 주고받으며 정보를 교환할 수 있습니다.
이 글을 읽은 후에 다음을 할 수 있습니다:
글 링크 복사
애플리케이션 프로그래밍 인터페이스(API)( )를 사용하면 소프트웨어 프로그램이 API 호출 또는 정보 요청을 주고받으며 서로 통신할 수 있습니다. 이러한 요청은 API 클라이언트에 의해 시작되고 API 엔드포인트에서 수락합니다.
API 간에 정보를 교환하기 위해 개발자는 API가 수락할 수 있는 요청 유형, 지원하도록 설계된 사용 사례 및 기타 조건(예. 프로토콜, 스키마 및 보안 요구 사항)을 준수해야 하는 제3자가 있습니다.
API 호출을 사용하면 개발자가 개별 애플리케이션마다 함수를 처음부터 다시 작성할 필요 없이 API가 기능을 공유할 수 있습니다. 이러한 기능이 없다면 개발자는 여러 애플리케이션에서 기능을 쉽게 복제하거나 다른 앱, 서비스 및 제공업체에 데이터를 요청할 수 없습니다.
API는 소프트웨어 프로그램이 데이터와 기능을 공유할 수 있도록 하는 인터페이스입니다. 이 통신 방법은 대부분의 최신 웹 애플리케이션의 기능을 향상시키는 데 도움이 됩니다.
예를 들어 앨리스가 청취자의 기분에 따라 클래식 음악 재생 목록을 맞춤 설정하는 애플리케이션을 개발한다고 가정해 보겠습니다. 이러한 재생 목록을 채우기 위해 수천 개의 트랙을 수동으로 입력하는 대신 외부 음악 저장소에 연결되는 API를 사용하여 시간과 비용을 절약하고 개발 문제를 해결할 수 있습니다.
API의 사용 사례는 거의 무한합니다. 클라우드 서비스, 데이터베이스 쿼리, 모바일 애플리케이션 자동 업데이트, 여러 장치로 콘텐츠 스트리밍, 항공권 가격 및 음식 배달 옵션 집계 등 다양한 기능을 제공합니다.
'사용자'라고도 하는 API 클라이언트는 API 호출을 시작하는 소프트웨어입니다.
API 클라이언트는 API 엔드포인트와 상호 작용하기 전에 신원을 확인해야 합니다. 이를 통해 공격자가 API를 악용하여 분산 서비스 거부(DDoS) 공격( ) 또는 기타 악의적인 작업을 수행하는 것을 방지할 수 있습니다.
인증은 일반적으로 고유 문자열(API 키), 사용자 이름과 비밀번호의 조합, OAuth 토큰 또는 mutual TLS의 네 가지 방법 중 하나를 통해 이루어집니다. 강력한 인증 방법을 사용하는 것은 개발자가 공격으로부터 API를 보호할 수 있는 한 가지 방법입니다. (API 보안에 대해 자세히 알아보세요.)
API 엔드포인트 는 API 호출을 수락하고 요청된 정보를 반환합니다.
API 클라이언트와 엔드포인트는 모두 개별 하드웨어 장치가 아닌 서버에서 호스팅되는 소프트웨어 프로그램을 의미합니다. API 서버는 여러 개의 엔드포인트를 호스팅할 수 있으며, 각 엔드포인트에는 API 클라이언트가 찾을 수 있는 고유 리소스 식별자(URI)가 할당됩니다. 대부분의 경우 이 URI는 인터넷 기반 위치(예: 웹사이트)를 가리키는 URL(유니폼 리소스 로케이터)입니다.
API 스키마는 API 요청이 유효한 것으로 간주되기 위해 충족해야 하는 사양을 정의하는 메타데이터입니다. 이러한 사양에는 대상 엔드포인트, HTTP 방법, 개발자가 설정한 기타 요구 사항 등의 세부 사항이 포함될 수 있습니다.
클라이언트에서 API 호출이 전송되면 스키마에 설명된 조건을 충족해야 합니다. 그래야만 API 엔드포인트가 요청된 정보를 반환할 수 있습니다. 이를 이해하기 쉽게 설명하기 위해 밥이 파티를 계획하고 있다고 가정해 보겠습니다. 초대장에 노란 데이지를 가져온 게스트에게만 파티가 끝난 후 감사 카드를 준다고 명시했습니다. 그러나 캐롤이 파티에 빨간 장미를 가져오기로 결정한 경우에는 나중에 감사 카드를 받지 못합니다.
마찬가지로 API 스키마에서 설정한 요구 사항을 충족하지 않는 API 호출은 응답을 받지 못합니다.
API 자체와 마찬가지로 API 호출은 API 문서에 설명된 사양에 따라 달라집니다. 그러나 일반적으로 API 호출은 세 가지 기본 단계를 따릅니다:
API 호출에 대한 자세한 설명은 API 호출이란 무엇인가요?
API는 여러 가지 프로토콜에서 지원됩니다. 프로토콜 은 네트워크를 통해 통신하는 방법으로, API에 요청과 응답의 형식을 지정하는 방법을 알려줍니다. 사용되는 API 프로토콜의 유형은 API가 개발된 목적, 사용 사례 및 제한 사항에 따라 달라집니다.
가장 일반적인 두 가지 API 프로토콜은 단순 객체 액세스 프로토콜(SOAP)과 원격 프로시저 호출(RPC)입니다. REST(Representational State Transfer)는 이러한 프로토콜과 자주 비교되는 소프트웨어 아키텍처입니다.
SOAP 은 서로 다른 운영 체제 및 아키텍처를 사용하는 API 간에 호출을 주고받을 수 있는 표준화된 방법을 제공합니다. 또한 하이퍼텍스트 전송 프로토콜(HTTP), 파일 전송 프로토콜(FTP), 단순 메일 전송 프로토콜(SMTP), 기타 애플리케이션 계층 프로토콜과도 호환됩니다. 확장 가능한 마크업 언어(XML)를 사용하는 API 클라이언트에게만 데이터를 반환할 수 있습니다.
RPC 는 API 간 통신을 위한 가장 간단하고 오래된 방법 중 하나입니다. 클라이언트가 원격 서버에 함수를 요청하는 원격 프로시저 호출()을 시작하여 작동합니다. RPC와 SOAP/REST의 주요 차이점은 RPC는 특정 작업(또는 기능)을 수행하는 데 도움이 되는 반면, SOAP/REST는 리소스(또는 데이터)를 검색하는 데 사용된다는 점입니다.
REST 는 부분적으로 API 호출의 형식을 지정하는 REST 아키텍처를 나타냅니다. 간단히 말해 REST를 사용하면 클라이언트가 서버에 리소스를 요청하면 서버는 현재 상태의 정보를 클라이언트에 반환합니다. REST API는 요청과 응답의 형식을 지정하기 위해 HTTP 프로토콜을 사용하는 경우가 많지만, (FTP), SMTP 등과도 호환됩니다. XML, JSON(JavaScript 객체 표기법), HTML(하이퍼텍스트 마크업 언어) 등 여러 가지 형식을 사용하여 API 클라이언트에 데이터를 반환할 수 있습니다.
네트워크에 연결된 모든 것과 마찬가지로 API는 악용 및 남용에 취약합니다. 일반적인 API 공격은 다음과 같습니다:
Cloudflare API Gateway는 강력한 인증을 제공하고, 페이로드에서 민감한 데이터를 검사하고, API 스키마를 검증하고, API 남용을 탐지 및 방지하여 이러한 공격을 완화합니다. 자세히 알아보기 Cloudflare API 게이트웨이.