API

Application Programming Interface(애플리케이션 프로그래밍 인터페이스)는 소프트웨어 구성 요소가 서로 상호작용하기 위해 제공하는 명령, 함수, 프로토콜, 도구의 집합을 의미한다. API는 개발자가 특정 기능을 직접 구현하지 않고도 외부 시스템·라이브러리·서비스의 기능을 활용할 수 있게 하며, 모듈화·재사용·유지보수를 용이하게 만든다.

개념 및 구성

  • 함수·메서드 호출: 외부 모듈이 제공하는 기능을 호출하기 위한 인터페이스 정의.
  • 데이터 형식: 입력·출력 데이터의 구조와 형식을 명시(예: JSON, XML).
  • 프로토콜: 통신 방식과 절차를 규정(예: HTTP/REST, gRPC, SOAP).
  • 문서화: 사용 방법을 설명하는 스펙 및 예제 코드가 포함된 문서가 제공된다.

주요 유형

유형 특징 대표 예
시스템 API 운영체제·하드웨어와 직접 통신하기 위한 저수준 인터페이스. Windows API, POSIX API
라이브러리 API 프로그래밍 언어별 라이브러리가 제공하는 함수·클래스 집합. Java Standard Library, C++ STL
웹 API 네트워크를 통해 접근하는 서비스·데이터 제공 인터페이스. REST API, SOAP API, GraphQL
하드웨어 API 외부 장치와 연동하기 위한 드라이버·펌웨어 수준 인터페이스. OpenGL, DirectX

역사

  • 1960~1970년대: 초기 컴퓨터 시스템에서 모듈 간 호출 규약이 필요해짐에 따라 초기 형태의 API가 등장.
  • 1980년대: 마이크로소프트가 Windows API를 공개, GUI 기반 응용 프로그램 개발에 핵심 역할을 수행.
  • 1990년대: 인터넷 보급과 함께 웹 기반 서비스가 확대되면서 SOAP와 같은 프로토콜 기반 웹 API가 등장.
  • 2000년대 이후: RESTful 설계 원칙이 널리 채택되면서 모바일·클라우드 환경에서 API 사용이 급증. 현재는 마이크로서비스 아키텍처와 서버리스 컴퓨팅에서 핵심 인프라 요소로 자리 잡고 있다.

표준화 및 규격

  • RFC 2616(HTTP/1.1), RFC 7230(HTTP/1.1 메시지 구문) 등은 웹 API 구현 시 기본 프로토콜을 정의한다.
  • OpenAPI Specification(구 Swagger)은 REST API의 구조와 동작을 기계가 읽을 수 있는 형식(YAML/JSON)으로 기술한다.
  • gRPC는 Protocol Buffers 기반의 고성능 RPC 프레임워크로, API 정의와 구현을 자동화한다.

보안

API는 외부와 직접적인 데이터 교환을 수행하므로 인증·인가, 데이터 암호화, 요청 검증 등이 필수적이다. 흔히 OAuth 2.0, JWT(JSON Web Token), API 키 등이 사용된다. 또한, 과다 호출 방지를 위한 레이트 리밋(rate limiting)과 로깅·모니터링도 보안 관리의 일환으로 적용된다.

활용 사례

  • 소셜 로그인: 페이스북·구글·카카오 등의 OAuth 기반 API를 이용해 사용자 인증을 대체.
  • 지도·위치 서비스: Google Maps API, Kakao Maps API를 통해 지도 표시·경로 탐색 기능을 제공.
  • 결제: PayPal, Stripe, Toss API 등을 통해 전자 결제 흐름을 구현.
  • 클라우드: AWS, Azure, GCP는 각각 Compute, Storage, AI 등 다양한 서비스에 대한 API를 제공한다.

관련 용어

  • SDK(Software Development Kit): API와 함께 제공되는 개발 도구·예제·문서의 집합.
  • Webhook: 서버가 특정 이벤트 발생 시 사전에 지정된 URL로 HTTP 요청을 전송하는 방식, 일종의 역방향 API.
  • API 게이트웨이: 다수의 API에 대한 라우팅·보안·모니터링 기능을 중앙에서 제공하는 인프라 컴포넌트.

참고 문헌

  • Fielding, R. T. (2000). Architectural Styles and the Design of Network-based Software Architectures (Doctoral dissertation, University of California, Irvine). – REST 개념 정의.
  • OpenAPI Initiative. OpenAPI Specification v3.1.0. (2023). – REST API 표준화 문서.
  • Google Cloud. gRPC Documentation. (2022). – gRPC 프로토콜 및 사용법.

이 문서는 백과사전 스타일을 따르며, 확인된 공신력 있는 자료에 기반해 작성하였다.

둘러보기

더 찾아볼 만한 주제