애플리케이션 프로그래밍 인터페이스(API)란 무엇인가요?
애플리케이션 프로그래밍 인터페이스(API)는 사용자(사람 또는 소프트웨어)와 정보(온라인 및 웹 애플리케이션에서 제공하는 데이터 리소스)라는 두 개체 간의 통신을 가능하게 하는 정의, 규칙 및 프로토콜의 집합입니다.
오늘날 API는 현대 애플리케이션의 기본 프레임워크를 구성하고, 사용자 경험을 개선하며, 비즈니스 모델을 강화합니다. 때로는 API 자체가 비즈니스 모델이 되기도 합니다.
API는 어떻게 작동하나요?
API는 애플리케이션의 ‘공개된 얼굴’로서, 애플리케이션이 수행하는 기능과 제공할 수 있는 정보를 보여 주고 올바른 요청 형식을 정의합니다. 개발자가 애플리케이션용 API를 만들어 공개하면 다른 애플리케이션이 해당 애플리케이션과 통신할 수 있습니다.
많은 경우 API는 자주 사용하는 기능을 손쉽게 이용할 수 있도록 해 주므로 개발자의 귀중한 시간을 절약해 줍니다. 개발자는 기존 애플리케이션의 기능을 중복해서 구현하는 대신, 해당 애플리케이션의 API를 호출하여 그 기능을 자신의 애플리케이션에 통합할 수 있습니다.
각 API의 설계, 배포 및 작동 방식은 해당 API의 아키텍처 스타일이나 프로토콜에 따라 달라집니다.
API 아키텍처 및 프로토콜 유형
API 아키텍처 또는 아키텍처 스타일은 API의 상위 수준 설계를 의미합니다. 여기에는 API의 구조와 구성 방식, 요청/응답 형식이 포함됩니다. API 프로토콜 역시 형식을 지정하며, 여기에 더해 정확한 메시지까지 정의합니다.
일반적인 API 아키텍처와 프로토콜은 다음과 같습니다:
- REST – RESTful이라고도 하는 이 아키텍처 스타일은 표현 상태 전송의 원칙을 기반으로 합니다. HTTP 메서드(예: GET, POST, PUT, DELETE)와 추상화된 정보(리소스 및 리소스 모델 형태)를 사용하여 확장 가능하고 유연하며 특정 기술에 종속되지 않는 구조를 만듭니다. 오늘날에도 REST는 가장 널리 사용되는 API 아키텍처입니다.
- GraphQL – Meta(구 Facebook)가 개발한 오픈 소스 쿼리 언어로, GraphQL 아키텍처를 사용하면 한 번의 API 호출로 여러 소스에서 데이터를 가져올 수 있습니다. 클라이언트가 필요한 데이터만 요청하므로 GraphQL API는 REST API보다 효율적인 편이지만 캐시하기는 더 어렵습니다.
- SOAP – 이 아키텍처 접근 방식은 단순 객체 접근 프로토콜 (SOAP)을 사용합니다. SOAP 메시지는 일반적으로 XML 형식으로 작성되므로 REST나 GraphQL보다 용량이 큽니다. REST API와 달리 SOAP API에는 API 프로토콜의 구조를 정의하는 엄격한 구현 지침이 있습니다.
- WebSocket – 이 API 프로토콜은 전이중 방식이므로 클라이언트와 서버가 동시에 메시지를 주고받을 수 있습니다. 또한 서버는 클라이언트 요청에 대한 응답이 아닌 메시지를 보낼 수도 있습니다. 예를 들어 서버 측 이벤트에 의해 메시지 전송이 트리거될 수 있습니다. 반면 REST API는 엄격한 요청-응답 패턴을 따릅니다.
- RPC – 원격 프로시저 호출을 사용하면 개발자는 원격 상호 작용의 세부 사항을 지정하지 않고도 로컬 함수를 호출할 때와 동일한 코드를 사용하여 다른 주소 공간(일반적으로 원격 서버)에서 실행되는 함수를 호출할 수 있습니다. 여러 언어를 사용할 수 있어 이 프로토콜은 유연하며 클라이언트-서버 통신에 널리 사용됩니다. RPC의 한 예로 gRPC(Google Remote Procedure Call)가 있습니다.
오늘날 API는 어떻게 사용되나요?
API는 현대 소프트웨어의 핵심 요소입니다. 오늘날 조직과 기업은 필요에 따라 다양한 유형의 API를 구축하거나 사용합니다.
오늘날 조직에서 가장 흔히 볼 수 있는 네 가지 API 유형은 퍼블릭 API, 프라이빗 API, 파트너 API, 서드 파티 API입니다.
공개 API
공개 API는 기업 외부의 사용자에게 유료 또는 무료로 제공되며, 서드 파티 개발자와 파트너십을 구축하고 전체 비즈니스 생태계를 확장할 수 있도록 지원합니다.
퍼블릭 API는 서드 파티 개발자가 새로운 제품을 개발하는 데 사용할 수 있으므로 혁신을 촉진하고 새로운 파트너십을 구축하는 데 중요한 도구가 됩니다.
비공개 API
비공개 API는 기업 내부 팀만 액세스할 수 있습니다. 비공개 API는 데이터의 활용을 촉진하고 내부 협업을 강화하거나, 조직의 대외용 애플리케이션(예: 웹사이트)을 보이지 않는 곳에서 지원할 수 있습니다.
프라이빗 API는 내부 사용자만 사용할 수 있으므로 조직은 최적화를 염두에 두고 이를 구축할 수 있습니다. 또한 프라이빗 API는 최신 애플리케이션의 구성 가능성을 높여 기업이 현재의 요구 사항에 맞게 대응할 수 있도록 합니다. 개발자는 마이크로서비스를 구축할 때 프라이빗 API를 손쉽게 통합할 수 있어 팀 간 중복 작업을 줄일 수 있습니다.
파트너 API
파트너 API는 비즈니스 파트너와 직접 통합하는 데 사용됩니다(예: 항공사가 호텔 체인과 제휴하여 항공편과 숙박을 동시에 예약할 수 있는 경우). 파트너 API는 공개적으로 제공되지 않으며, 양사 모두의 인증(AuthN) 및 권한 부여(AuthZ) 요구 사항을 충족하는 일부 개발자만 이용할 수 있습니다.
상호 운용성은 사일로를 허물고 서로 다른 조직 간의 소통을 가능하게 함으로써 파트너 API와의 관계를 강화합니다.
서드파티 API
서드 파티 API는 조직의 애플리케이션과 서비스에 없는 데이터나 기능에 액세스하는 데 사용됩니다. 이러한 API는 서드 파티의 서버에서 실행되며, 일반적으로 널리 필요한 서비스를 제공합니다(예: 많은 전자상거래 웹사이트에서 사용하는 Stripe 결제 처리 API). API에 따라 조직에서 무료 또는 유료로 사용할 수 있습니다.
서드 파티 API는 이미 다른 개발자나 조직에서 구축해 놓았기 때문에 비용을 절감할 수 있다는 분명한 이점이 있습니다. 또한 개발자가 기능을 직접 코딩하지 않고 바로 사용할 수 있으므로, 서드 파티 API는 조직이 앱을 더 빠르게 개발하는 데 중요한 역할을 합니다.
API를 만드는 데 사용되는 애플리케이션 언어는 무엇인가요?
거의 모든 최신 프로그래밍 언어로 API를 개발할 수 있습니다. API를 개발할 때 많은 개발자가 프레임워크를 사용하기도 합니다. 프레임워크는 코드 라이브러리와 기타 필수 유틸리티 같은 구성 요소를 제공하여 해당 언어로 애플리케이션을 더 빠르고 쉽게 구축할 수 있도록 해줍니다.
각 프로그래밍 언어에는 일반적으로 개발자들 사이에서 널리 사용되는 프레임워크가 하나 이상 있습니다. 다음 표에는 여러 프레임워크 옵션이 나와 있으며, 그중 다수는 오픈 소스입니다.
언어
프레임워크
Java
JavaScript, Node.js
Angular, Express.js, React, Vue
PHP
Python
Rust
Ruby
어떤 언어와 프레임워크를 선택할지는 일반적으로 프로젝트의 요구 사항이나 개발자의 개인적인 선호도에 따라 달라집니다.
API 예시
오늘날 조직에는 목표에 부합하는 현대적인 API 전략이 필요합니다. API 전략은 조직이 API를 설계, 개발, 관리, 통제 및 보호하는 방법에 대한 계획을 수립합니다.
According to 소프트웨어 엔지니어링 리더를 위한 Gartner의 5가지 주요 API 교훈에 따르면, 강력한 API 전략을 수립하기 위한 5가지 모범 사례는 다음과 같습니다.
- API 거버넌스로 인해 병목 현상이 발생하지 않도록 하세요. 혁신을 지속적으로 추진하려면 API 거버넌스와 개발자의 민첩성 간에 균형을 유지해야 합니다.
- API를 수익화할 계획이 없더라도 제품으로 취급하세요. 각 API의 목적과 대상 사용자가 명확하고 비즈니스 목표에 부합하는지 확인하세요.
- 해커보다 먼저 API를 찾아내세요. 검색 가능성을 우선시하고 정기적으로 모니터링하면 보안 침해를 예방하는 데 도움이 됩니다.
- API 수명 주기를 관리하세요. 포괄적인 API 수명 주기 관리를 통해 API가 적절한 보안을 유지하면서 지속적으로 작동하도록 보장할 수 있습니다.
- 가장 적합한 API 기술을 선택하세요. 한 조직에 적합한 기술이 귀사에도 반드시 적합한 것은 아니므로, 현재와 미래의 구체적인 API 요구 사항을 면밀히 검토하는 것이 중요합니다.
어떤 유형의 API 아키텍처를 선택하거나 어떤 유형의 API를 개발하든, API 보안을 나중에 고려할 사항이 아니라 처음부터 고려하는 것이 중요합니다. 처음부터 API를 안전하게 보호하고 API 스프롤과 같은 일반적인 문제에 대응하는 방법을 자세히 알아보려면 API 보안: API 보호를 위한 모범 사례를 참조하세요.
또한 모든 지표가 똑같이 중요한 것은 아닙니다. 자세한 내용은 성공적인 API 전략을 위해 모니터링해야 할 12가지 지표에서 확인하세요.
API 연결성이란 무엇인가요?
API는 개발자를 위한 도구로 시작했지만, 이제는 수익을 증대하고 기업의 민첩성을 지원하는 전략적 비즈니스 자산으로 발전했습니다. API 연결성이란 클라우드 네이티브 환경에서 모듈식의 재사용 가능한 API를 활용해 데이터와 애플리케이션을 연결함으로써 가시성, 보안 및 거버넌스와 관련된 과제를 해결하는 것을 의미합니다.

