API란 무엇인가요?
API는 애플리케이션 간에 데이터와 기능을 쉽고 안전하게 교환할 수 있도록 지원하여 소프트웨어 개발과 혁신을 간소화합니다.
IBM API 관리 솔루션에 대해 알아보기
스탠드형 책상에서 컴퓨터로 작업하는 사람
API란 무엇인가요?

API 또는 애플리케이션 프로그래밍 인터페이스는 서로 다른 애플리케이션 간에 통신이 가능하도록 지원하는 정의된 규칙 집합입니다. 시스템 간의 데이터 전송을 처리하는 중개 계층 역할을 하여 기업이 외부 타사 개발자, 비즈니스 파트너 및 회사 내부 부서에 애플리케이션 데이터와 기능을 개방할 수 있도록 합니다.

API 내의 정의와 프로토콜은 기업이 일상 업무에서 사용하는 다양한 애플리케이션을 연결하여 직원의 시간을 절약하고 협업과 혁신을 방해하는 사일로를 해소할 수 있습니다. API 설명서는 개발자에게 애플리케이션 간 통신을 위한 인터페이스를 제공하여 애플리케이션 통합을 단순화합니다.

API 작동 방식

API 작동 방식을 이해하는 간단한 방법은 일반적인 예인 제3자 결제 방식을 살펴보는 것입니다. 사용자가 전자상거래 사이트에서 제품을 구매할 때 'Paypal로 결제' 또는 다른 유형의 타사 시스템을 사용하라는 메시지가 표시될 수 있습니다. 이 기능은 API를 사용하여 연결합니다.

  • 구매자가 결제 버튼을 클릭하면 API가 호출하여 정보를 가져올 수 있으며 이를 요청이라고도 합니다. 이 요청은 API의 URI(Uniform Resource Identifier)를 통해 애플리케이션에서 웹 서버로 처리되며 요청 동사, 헤더 및 때로는 요청 본문이 포함되기도 합니다.
     

  • API는 제품 웹페이지로부터 유효한 요청을 받은 후 외부 소프트웨어 또는 웹서버, 이 경우에는 제3자 결제 시스템으로 호출합니다.
     

  • 서버는 요청된 정보와 함께 API에 응답을 보냅니다.
     

  • API는 데이터를 초기 요청 애플리케이션(여기서는 제품 웹사이트)으로 전송합니다.

데이터 전송은 사용 중인 웹 서비스에 따라 다르지만 요청 및 응답은 모두 API를 통해 발생합니다. 사용자 인터페이스에는 가시성이 없으므로 API는 컴퓨터 또는 애플리케이션 내에서 데이터를 교환하며 사용자에게 원활한 연결로 나타납니다.

API 혜택

API는 새로운 애플리케이션과 서비스의 설계 및 개발, 기존 애플리케이션과 서비스의 통합 및 관리를 단순화합니다. 그러나 개발자와 조직 전체에 또 다른 중요한 이점도 제공합니다.

협업 개선. 평균적인 기업은 거의 1,200여 개의 클라우드 애플리케이션(ibm.com 외부 링크)을 사용하며, 그중 많은 부분의 연결이 끊어져 있습니다. API를 사용하면 이러한 플랫폼과 앱이 서로 원활하게 통신할 수 있도록 통합이 가능합니다. 이러한 통합을 통해 기업은 워크플로를 자동화하고 직장의 협업을 개선할 수 있습니다. API가 없으면 많은 기업의 연결성이 부족해지며 생산성과 성능을 저하시키는 정보 사일로가 발생하게 됩니다.

가속화된 혁신. API는 유연성을 제공하여 기업이 새로운 비즈니스 파트너와 연동하고, 기존 시장에 새로운 서비스를 제공하며, 궁극적으로는 막대한 수익을 창출하고, 디지털 혁신을 촉진할 수 있는 새로운 시장에 접근할 수 있도록 지원합니다. 예를 들어 Stripe라는 회사는 단 7개의 코드 라인을 가진 API로 시작했습니다. 그 후 Stripe는 세계 여러 대기업과 파트너십을 맺고, 대출 및 기업 카드를 제공하기 위해 다각화를 진행했으며, 최근 가치는 360억 달러에 달했습니다. (ibm.com 외부 링크)

데이터 수익화. 개발자들을 자신의 브랜드로 끌어들이고 잠재적인 비즈니스 파트너와의 관계를 구축하기 위해 많은 기업들은 적어도 초기에는 무료로 API를 제공하는 방식을 선택합니다. API가 귀중한 디지털 자산에 대한 액세스 권한을 부여하면 기업은 액세스 권한을 판매하여 이를 수익화합니다. 이를 API 경제라고 합니다. AccuWeather(ibm.com 외부 링크)는 다양한 API 패키지를 판매하는 셀프서비스 개발자 포털을 시작한 지 불과 10개월 만에 2만 4000여 명의 개발자를 유치하고 11,000여 개의 API키를 판매하며 번창하는 커뮤니티를 구축하는 데 성공했습니다.

시스템 보안. API는 요청하는 애플리케이션을 응답 서비스의 인프라와 분리하고 통신할 때 둘 사이에 보안 계층을 제공합니다. 예를 들자면 API 호출에는 일반적으로 인증 자격 증명이 필요합니다. HTTP 헤더, 쿠키 또는 쿼리 문자열은 데이터 교환 중에 추가 보안을 제공할 수 있으며 API 게이트웨이 는 액세스를 제어하여 보안 위협을 더욱 최소화할 수 있습니다.

최종 사용자 보안 및 개인정보 보호. API가 네트워크 내에서 추가 보호를 제공하는 것처럼 개인 사용자에게도 또 다른 보호 계층을 제공할 수 있습니다. 웹 사이트에서 위치 API를 통해 제공되는 사용자 위치를 요청하면 사용자는 이 요청을 허용할지 거부할지 결정할 수 있습니다. API가 애플리케이션 및 데이터에 대한 액세스를 요청할 때 iOS와 같은 많은 웹 브라우저 및 모바일 운영 체제에는 권한 메커니즘이 내장되어 있습니다. 앱이 API를 통해 파일에 액세스해야 하는 경우 Windows, Mac 및 Linux와 같은 파일 시스템은 해당 액세스에 대한 권한을 사용합니다.

실제 사용 중인 API: 일반적인 예

API를 사용하면 기업은 보안과 제어를 유지하면서 리소스에 대한 액세스를 개방할 수 있으므로 최신 비즈니스 및 개인 애플리케이션의 중요한 요소로 자리 잡았습니다. 다음은 사용자가 거의 매일 접하는 API 사용의 몇 가지 일반적인 예입니다.

  • 범용 로그인: 널리 사용되는 API 사용 예로 Facebook, Twitter 또는 Google 프로필 로그인 정보를 이용하여 웹사이트에 로그인할 수 있도록 해주는 기능이 있습니다. 이 편리한 기능을 사용하면 모든 웹 사이트에서 가장 인기 있는 API 서비스 중 하나를 활용하여 빠르게 인증할 수 있으므로 모든 웹 애플리케이션이나 신규 멤버십에 프로필을 새로 생성하는 번거로움과 시간을 절약할 수 있습니다.
     

  • 사물 인터넷(IoT): IoT와 같은 '스마트 장치'는 API를 통해 인터넷 지원 터치스크린 및 데이터 수집과 같은 추가 기능을 제공합니다. 그 예로, 스마트 냉장고를 레시피 애플리케이션에 연결하거나 휴대폰 문자 메시지로 메모를 작성하고 보낼 수 있습니다. 내부 카메라는 사용자가 어디서나 냉장고 안의 내용물을 확인할 수 있도록 다양한 애플리케이션과 연결됩니다.
     

  • 여행 예약 비교: 여행 예약 사이트는 수천 개의 항공편을 집계하여 날짜와 목적지별로 가장 저렴한 옵션을 보여줍니다. 이 서비스는 애플리케이션 사용자가 웹 브라우저나 여행 예약 회사의 자체 애플리케이션을 이용해 호텔 및 항공사의 최신 예약 관련 정보에 액세스할 수 있도록 지원하는 API 덕분에 가능합니다. API는 데이터와 요청을 자율적으로 교환하여 이용 가능한 항공편이나 숙소를 확인하는 데 드는 시간과 노력을 획기적으로 줄여줍니다.
     

  • 지도 앱: 정적 또는 대화형 지도를 표시하는 핵심 API 외에도 지도 앱은 다른 API와 기능을 사용하여 사용자에게 길 찾기, 속도 제한, 관심 지점, 교통 경고 등을 제공하며, 사용자는 이동 경로를 계획하거나 배달 차량과 같이 이동 중인 물품을 추적할 때 API와 통신합니다.
     

  • Twitter: 각 트윗에는 작성자, 고유 ID, 메시지, 게시된 타임스탬프, 위치 정보 메타데이터 등 설명이 포함된 핵심 속성이 포함되어 있습니다. Twitter는 개발자가 공개 트윗과 답글의 핵심 속성을 사용할 수 있도록 하며 회사 API를 통해 다른 웹페이지에 트윗을 게시할 수 있도록 허용합니다.
     

  • SaaS 애플리케이션: API는 SaaS(Software-as-a-Service) 제품 성장의 필수적인 부분입니다. CRM(고객 관계 관리 툴)과 같은 플랫폼에는 메시징, 소셜 미디어, 이메일 앱 등 기업이 이미 사용하고 있는 애플리케이션과 통합할 수 있는 여러 가지 기본 제공 API가 포함되어 있는 경우가 많습니다. 이를 통해 영업 및 마케팅 업무를 위한 애플리케이션 간 전환에 소요되는 시간이 대폭 단축됩니다. 또한 서로 다른 애플리케이션을 사용하는 부서 간에 존재할 수 있는 데이터 사일로를 줄이거나 방지하는 데 도움이 됩니다.

API 유형

오늘날 대부분의 API는 인터넷을 통해 애플리케이션의 데이터와 기능을 노출하는 웹 API입니다. 다음은 네 가지 주요 웹 API 유형입니다.

  • 오픈 API는 HTTP 프로토콜로 액세스할 수 있는 오픈 소스 애플리케이션 프로그래밍 인터페이스입니다. API 엔드포인트와 요청 및 응답 형식을 정의했으며 공개 API라고도 합니다.
     

  • 파트너 API 는 전략적 비즈니스 파트너를 연결합니다. 일반적으로 개발자는 공용 API 개발자 포털을 통해 셀프 서비스 모드로 파트너 API에 액세스합니다. 하지만 파트너 API에 액세스하려면 온보딩 프로세스를 완료하고 로그인 자격 증명을 받아야 합니다.
     

  • 내부 API 는 외부 사용자로부터 숨겨져 있습니다. 이러한 비공개 API는 회사 외부의 사용자가 사용할 수 없으며, 대신 여러 내부 개발팀 간의 생산성 및 커뮤니케이션을 개선하기 위한 것입니다.
     

  • 복합 API는 여러 데이터 또는 서비스 API를 결합합니다. 따라서 프로그래머는 단일 호출로 여러 엔드포인트에 액세스할 수 있습니다. 복합 API는 단일 작업을 수행하는 데 여러 소스의 정보가 필요할 수 있는 마이크로 서비스 아키텍처에서 유용합니다.

API 프로토콜

웹 API 사용이 증가함에 따라 사용자에게 허용되는 데이터 유형, 명령 및 구문을 생성하는 일련의 정의된 규칙 또는 API 사양을 제공하기 위한 특정 프로토콜이 개발되었습니다. 이러한 API 프로토콜은 사실상 표준화된 정보 교환을 촉진합니다.

  • SOAP(Simple Object Access Protocol): XML로 구축된 SOAP는 엔드포인트가 SMTP 및 HTTP를 통해 데이터를 보내고 받을 수 있게 해줍니다. SOAP API를 사용하면 서로 다른 환경에서 실행되거나 서로 다른 언어로 작성된 앱 또는 소프트웨어 구성 요소 간에 정보를 더 쉽게 공유할 수 있습니다.
     

  • XML-RPC (XML-원격 프로시저 호출): XML-RPC프로토콜은 특정 XML 형식을 사용하여 데이터를 전송합니다. XML-RPC는 SOAP보다 오래되었지만 최소 대역폭을 사용한다는 점에서 훨씬 간단하고 비교적 가볍습니다.
     

  • JSON-RPC: JSON-RPC는 XML-RPC와 마찬가지로 원격 프로시저 호출이지만 데이터를 전송하는 데 XML 대신 JSON(JavaScript Object Notation)이 사용됩니다.

  • REST(Representational State Transfer): REST는 웹 API 아키텍처 원칙의 집합입니다. REST API(RESTful API라고도 함)는 특정 REST 아키텍처 제약 조건을 준수하는 API입니다. SOAP 프로토콜을 사용하여 RESTful API를 구축하는 것이 가능하지만 일반적으로 두 표준은 경쟁 사양으로 간주됩니다.

일반적으로, API는 Javascript와 같은 하위 프로그래밍 언어로 만든 애플리케이션에 연결된 인터페이스를 의미했습니다. 그러나 최신 API는 REST 원칙과 JSON 형식을 준수합니다. 주로 HTTP용으로 구축되므로 Java, Ruby, Python 및 기타 여러 언어로 작성된 애플리케이션에서 쉽게 액세스할 수 있고 널리 이해할 수 있는 개발자 친화적인 인터페이스를 제공합니다.

API와 웹 서비스 비교

웹 서비스는 웹 주소를 통해 액세스할 수 있고 데이터 전송을 용이하게 하는 소프트웨어 구성 요소입니다. 웹 서비스는 애플리케이션의 데이터와 기능을 다른 애플리케이션에 노출하므로 사실상 모든 웹 서비스는 API입니다. 하지만 모든 API가 웹 서비스는 아닙니다.

API는 연결이 끊긴 두 애플리케이션 사이에서 중개자 역할을 하는 모든 소프트웨어 구성 요소입니다. 웹 서비스도 애플리케이션을 연결하지만 이를 위해서는 네트워크가 필요합니다. 일부 API가 오픈 소스인 경우 웹 서비스는 일반적으로 비공개이며 승인된 파트너만 액세스할 수 있습니다.

API, 마이크로서비스 및 클라우드 네이티브 개발

마이크로서비스는 REST API를 사용하여 연결된 애플리케이션을 더 작고 독립적인 구성 요소(마이크로서비스라고도 함)로 나누는 아키텍처 스타일입니다. 애플리케이션을 별도의 서비스 집합으로 구축하면 개발자가 하나의 애플리케이션 구성 요소를 다른 구성 요소와 독립적으로 작업할 수 있으며 애플리케이션을 더 쉽게 테스트, 유지 관리 및 확장할 수 있습니다.

마이크로서비스 아키텍처는 클라우드 컴퓨팅의 부상과 함께 더욱 보편화되었으며 컨테이너쿠버네티스와 함께 클라우드 네이티브 애플리케이션 개발의 기초가 되었습니다.

관련 솔루션
IBM 클라우드 자동화

지능형 자동화를 선택하여 기업 전체의 비즈니스 및 IT 운영을 대규모로 관리할 수 있습니다.

클라우드 자동화 살펴보기
IBM API Connect®

여러 클라우드에 걸쳐 API의 라이프사이클을 관리하고, 소셜화를 향상하고, 비즈니스 에코시스템에서 수익 활동을 극대화할 수 있습니다.

IBM API Connect 살펴보기
IBM Cloud Pak® for Integration

폐쇄 루프 AI 자동화를 사용하여 다양한 통합 스타일을 지원합니다.

Cloud Pak for Integration 살펴보기
통합 솔루션

통합 솔루션을 통한 비즈니스 잠재력 연결, 자동화 및 활용

통합 솔루션 살펴보기
자원 컨테이너란 무엇인가요?

컨테이너는 애플리케이션 코드를 라이브러리 및 종속 요소와 함께 패키징하는 실행 파일로, 기존 IT 또는 모든 클라우드에서 실행할 수 있습니다.

쿠버네티스란 무엇인가요?

쿠버네티스는 컨테이너화된 애플리케이션의 배포, 관리 및 확장을 자동화하는 오픈 소스 컨테이너 오케스트레이션 플랫폼입니다.

The Forrester Wave™: 2022년 3분기 API 관리 솔루션

API 관리가 디지털 비즈니스를 촉진에 중요한 역활을 수행하는 방법과 최근 오퍼링, 전략 및 시장 입지 점수를 기준으로 API 관리 환경에서 IBM이 다른 공급업체와 어떻게 비교되는지 알아보세요.

다음 단계 안내

IBM® API Connect®는 직관적인 사용자 경험을 통해 일관된 API 생성, 관리, 보호, 소셜화 및 수익화하고 온프레미스 및 클라우드 전반에서 디지털 혁신을 지원하는 보안 API 관리 솔루션입니다. 이를 통해 고객사와 고객사의 고객이 실시간으로 디지털 앱을 지원하고 혁신을 추진할 수 있습니다. IBM API Connect는 IBM Cloud Pak® for Integration의 일부로 다른 기능과 함께 제공되며 클라우드로 전환 과정에서 애플리케이션 현대화 및 API 관리를 자동화할 수 있습니다.

IBM API Connect 살펴보기