현대의 웹 서비스 개발에서는, 다른 서비스가 제공하는 기능을 받아들여, 연계시키는 형태로 시스템을 구축하는 케이스가 늘어나고 있습니다.
모든 것을 자발적으로 개발하는 대신 기존 API를 활용하여 효율적이고 고품질의 시스템을 구축할 수 있습니다.
그래서 본 기사에서는 API의 기본부터 종류나 구조, 활용 사례까지 자세히 설명합니다.
API
API란 어플리케이션 프로그래밍 인터페이스(Application Programming Interface)의 약칭으로, 다른 소프트웨어나 프로그램이 데이터나 기능을 공유하기 위한 인터페이스입니다.
API를 이용함으로써 서로 다른 애플리케이션이 서로 통신하여 데이터를 교환할 수 있게 됩니다.
API에는 사용되는 환경과 목적에 따라 다양한 종류가 있습니다. 다음 장에서는 API의 종류와 특징을 살펴 보겠습니다.
API의 종류와 특징
API는 그 실행 환경에 따라 여러 종류로 분류됩니다.
| 종류 | 용도 | 특징 |
| 웹 API | 브라우저 및 웹 앱과의 통신 | HTTP를 통한 통신. 공개성이 높고 범용성이 좋음 |
| 네이티브 API | OS 및 디바이스 제어 | Windows나 Android 등, 특정 환경에서만 사용할 수 있지만 조작 범위가 넓음 |
| 런타임 API | 프로그램 실행 중 기능 호출 | 실행 중에 처리 내용을 전환할 수 있음 |
이제 각 API 유형에 대해 자세히 살펴 보겠습니다.
웹 API
웹 API는 인터넷을 통해 외부 서비스와 연계하기 위한 API입니다.
웹 API의 가장 큰 장점은 웹 상에서 공개 제공되고 있는 경우가 많고, 문서도 정비되어 있기 때문에, 비교적 도입하기 쉽습니다. 한편, 액세스 제한이나 이용 회수 제한이 설치되어 있는 경우도 있기 때문에, 사용 전에 사양을 잘 확인할 필요가 있습니다.
친숙한 웹 API의 예는 다음과 같습니다.
- Google Maps API
Google에서 제공하는 Google Maps API를 사용하면 Google Map 기능을 통합할 수 있습니다. - SP-API
Amazon의 Selling Partner API(SP-API)를 이용하면 재고·주문 정보, 가격 갱신이나 상품 이미지 등을 취득 가능합니다. - Instagram Graph API
Instagram(그리고 Facebook)이 제공하는 Graph API를 이용하면, SNS상으로부터 유저 데이터나 팔로워수, 투고 컨텐츠 등을 취득할 수 있습니다.
네이티브 API
네이티브 API는 OS나 디바이스를 조작할 때 이용하는 API입니다.
- Android API
Android 앱 개발에서 카메라, 센서, 파일 액세스 등의 기능을 조작할 수 있습니다. - Windows API
Windows상에서 동작하는 앱으로부터, 파일 시스템이나 윈도우 조작, 디바이스 제어가 가능합니다. - Core Location API
iPhone 앱에서 GPS 정보를 취득하여 현재 위치를 실시간으로 취득, 활용할 수 있습니다.
런타임 API
런타임 API는 프로그램이 실행되는 동안 특정 동작을 변경하는 API입니다. 프로그램의 빌드시에는 존재하지 않는 처리를, 런타임에 추가·변경할 수가 있습니다.
이러한 API는, 프레임워크나 가상 환경, 스크립트 언어의 실행 기반과 관련되어 있어 내부에서 고도의 동적 처리가 요구되는 장면에서 이용됩니다.
- Java Reflection API
Java 프로그램 내에서 클래스의 구조를 동적으로 취득·변경할 수 있습니다. - .NET 런타임 API
C# 등에서 실행하는 동안 어셈블리를 로딩하거나 코드를 동적으로 생성할 수 있습니다.
웹 API의 대표적인 설계 방식
API에는 Google Maps API와 유튜브 API 등 다양한 종류가 있습니다만, 각각의 구조나 설계 방침이 모두 공통되어 있는 것은 아닙니다.
한편, 네이티브 API나 런타임 API는, 주로 로컬 환경이나 실행 기반의 내부에서 완결하는 구조이며, Web API와 같은 통신 설계를 의식할 필요는 기본적으로 없습니다.
여기에서는 Web API에 초점을 맞추고 대표적인 설계 방식인 REST, GraphQL, SOAP에 대해 각각의 특징을 설명합니다.
RESTful API
RESTful API (Representational State Transfer)는 Web API의 설계 방식으로 가장 널리 채용되고 있는 방법 중 하나입니다.
데이터를 리소스로 취급해, 각각에 대해서 GET·POST·PUT·DELETE등의 HTTP 메소드를 사용해 조작합니다.
이 설계 방식은 알기 쉬운 구조와 실장의 용이함으로부터, 웹 서비스간의 제휴나 사내용 API의 구축 등, 폭넓은 장면에서 활용되고 있습니다. 한편, 자유도가 높기 때문에, 설계 룰이 모호해지면 유지 보수 우려가 있는 점에는 주의가 필요합니다.
SOAP API
SOAP API (Simple Object Access Protocol)는 XML 형식을 이용하여 통신하는 Web API의 설계 방식으로, 보안과 신뢰성이 높은것이 특징입니다.
RESTful와 달리 SOAP는 요청과 응답의 구조가 미리 정의되어 있어 통신 시에는 WSDL(Web Services Description Language)에 의한 명확한 사양서가 존재합니다.
한편, XML 편집에서 효율이 떨어지고 셋업 설정에서 시간이 많이 낭비되는 점 등 개발 효율이나 퍼포먼스의 면에서는 RESTful에 뒤떨어지는 면도 있습니다.
GraphQL API
GraphQL은 쿼리 언어를 활용하여 클라이언트 측에서 필요로 하는 데이터만 유연하게 검색할 수 있는 웹 API 설계 방법입니다.
GraphQL을 사용하면 단일 엔드포인트에 대해 쿼리를 실행하고 검색하려는 항목만 명시적으로 지정할 수 있습니다. 이를 통해 REST API에서 발생하는 ‘복수 요청 발생’ 및 ‘불필요한 데이터 수신’을 피하고 통신량을 최소화할 수 있습니다.
API의 장점 및 단점
API를 사용하여 얻을 수 있는 이점은 많이 있지만, 도입이나 운용에는 주의점도 있습니다
.
API의 이점
API를 활용하면 개발 효율에서 비즈니스 연계에 이르기까지 다양한 영역에서 이점을 얻을 수 있습니다.
- 개발 효율 향상
API를 이용하면 기존 기능을 재사용할 수 있어 처음부터 개발할 필요가 없어지므로 개발 시간과 비용을 크게 줄일 수 있습니다. - 기능의 확장성
API를 도입해 두면 서비스 론칭 후에도 외부 시스템과 연계하면서 기능을 유연하게 확장할 수 있습니다. - 실시간 데이터 활용
API를 통해 외부에서 최신 정보를 얻을 수 있으므로 항상 실시간 데이터를 서비스상에서 활용할 수 있습니다.
API의 단점
- 보안 위험
API는 외부와의 통신을 전제로 하기 때문에, 적절한 인증이나 암호화가 되어 있지 않은 API를 사용하면, 데이터 누설이나 무단 액세스의 위험이 높아집니다. 게다가, API의 호출 횟수나 송신 데이터에 제한이 없는 경우, DoS 공격의 대상이 될 가능성도 있습니다. - 외부 의존성 리스크
제공자 측의 API가 유지보수 및 버전 업데이터에 의해 스펙을 변경했을 경우 즉각적으로 대응하지 않으면 자사 시스템이 정상적으로 동작하지 않게 되는 리스크가 있습니다. - 성능
API 응답 시간이 느리거나 요청 수가 너무 많으면 시스템 성능이 저하될 수 있습니다. - 비용
외부 API를 사용하는 경우 사용량에 따라 고액의 비용이 발생합니다.
API 활용 사례
API는 서비스 간의 데이터 연계를 가능하게 하는 구조로서 다양한 분야에서 활용되고 있습니다.
SNS
기업 및 마케터에게 SNS 관련 API는 사용자 동향을 파악하고 프로모션 시책을 수행하는 데 필수적인 도구입니다.
예를 들어, X API를 사용하면 지정된 키워드를 포함하여 게시물을 수집하고 자동 게시를 할 수 있습니다.
이러한 API는 단순한 데이터 취득에 그치지 않고, 외부 툴이나 사내 시스템과 연계시키는 것으로, SNS 운용의 자동화나 고도의 분석의 기반으로서도 활용할 수 있습니다 .
결제 시스템
외부 결제 서비스와 연계하여 자사에서 복잡한 금융 처리를 구현하지 않고 안전하고 효율적인 결제 기능을 도입할 수 있습니다.
예를 들어, Stripe의 API에서는 결제 처리 외에 환불 처리, 정기 과금, 영수증의 자동 발행까지 일관되게 할 수 있습니다. 그 외에도 PayPal에서는 구매 버튼 생성부터 결제 완료 후 알림까지 프로그램적으로 제어할 수 있습니다.
이러한 API를 사용하면 사용자의 편의성 향상과 함께 결제 처리의 신뢰성과 확장성을 확보하면서 도입 및 운영 비용을 줄일 수 있습니다.
AI/머신 러닝
AI나 기계 학습 모델을 API 경유로 이용하는 것으로, 종래는 전문 지식을 필요로 한 복잡한 분석이나 예측 처리를 간단한 구현으로 실현할 수 있게 되었습니다.
예를 들어 구글 클라우드 비전 API를 사용하면 이미지에서 문자와 객체를 자동으로 감지하고 분류할 수 있습니다. Amazon Rekognition은 얼굴 인식 및 동영상 분석을 지원하며 보안 관리 및 광고 게재 등에서 입증되었습니다.
이러한 AI API는 업무 자동화 및 UX 강화를 촉진하고 마케팅, 의료, 교육, 고객 지원 등 폭넓은 분야에서 급속히 보급되고 있습니다.
스크래핑
업무로 외부 데이터를 활용하는 경우 스크래핑 API를 활용하면 효과적으로 데이터 수집이 가능해집니다.
예를 들어, 상품 가격 수집 API를 재고 관리 시스템과 연계하면 경쟁 가격에 따른 가격 조정 및 통지 처리가 가능해집니다.
본 블로그를 공개하고 있는 Octoparse도 GUI에서의 스크래핑뿐만 아니라 취득 데이터를 외부 시스템과 연계하기 위한 Open API를 제공하고 있습니다.
요약
API는 시스템 간의 연계와 자동화를 실현하는 수단으로 많은 업무 영역에서 활용되고 있습니다.
한편 보안, 비용, 외부 의존 등의 위험도 수반되므로 운영 체제에 주의가 필요합니다.
API에 관한 기술 동향이나 서비스 사양은 항상 변화하고 있어 한 번 선택한 API도 필요에 따라 재검토 또는 재평가되는 경우도 많습니다.



