본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

API;Application Programming Interface

  • 직접 연계 기술 중 하나로 응용 프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스
  • 사용하는 쪽은 내부 구현을 몰라도 정해진 규약(함수 이름, 매개변수, 요청·응답 형식)에 따라 호출하면 기능을 사용할 수 있다.
구분 설명 예
라이브러리 API 프로그래밍 언어나 라이브러리가 제공하는 함수·클래스의 호출 규약 Java API(java.util 등), C 표준 라이브러리
운영체제 API 응용 프로그램이 운영체제 기능(파일, 프로세스, 메모리, 네트워크)을 사용하는 규약. 내부적으로 시스템 콜을 호출 Windows API(Win32), POSIX
웹 API HTTP 등 네트워크를 통해 원격 서버의 기능을 호출하는 규약 REST, SOAP, GraphQL, gRPC

웹 API 방식 비교

편집 원본 편집
방식 특징 데이터 형식
REST 자원을 URI로 표현하고 HTTP 메서드(GET, POST, PUT, DELETE)로 조작. 무상태(Stateless) 주로 JSON
SOAP XML 기반 메시지 프로토콜. WSDL로 서비스를 기술하며 보안·트랜잭션 표준이 풍부 XML
GraphQL 클라이언트가 필요한 데이터 구조를 질의로 지정. 단일 엔드포인트, 과다·과소 조회 감소 JSON
gRPC Google이 개발한 RPC 프레임워크. HTTP/2와 Protocol Buffers를 사용해 빠름 이진(Protocol Buffers)
  • 누구나 사용할 수 있도록 공개된 API이다. 지도, 날씨, 결제, 공공데이터 등의 서비스를 외부 개발자가 활용할 수 있다.
  • 대개 인증키(API Key)를 발급받아 호출하며, 호출 횟수 제한을 둔다.
  • 관련 문서: 오픈 API

API 게이트웨이

편집 원본 편집
  • 여러 백엔드 서비스의 API 앞에 위치하여 클라이언트 요청을 받아 적절한 서비스로 전달하는 단일 진입점이다.
  • 주요 기능: 라우팅, 인증·인가, 호출량 제한(Rate Limiting), 로깅·모니터링, 프로토콜 변환
  • MSA 환경에서 많이 사용한다. 관련 문서: API 게이트웨이

서버 프로그램 구현에서의 역할

편집 원본 편집
  • 서버 프로그램은 업무 기능을 API로 외부에 제공하고, 다른 시스템의 API를 호출하여 연계한다.
  • 인터페이스 연계 기술 중 직접 연계 방식에는 API/Open API 외에 DB Link, DB Connection, JDBC, 화면 링크 등이 있고, 간접 연계 방식에는 EAI, ESB, 웹 서비스, 소켓 등이 있다.
  • API 구현 시 입력값 검증, 인증, 전송 구간 암호화를 적용해야 한다. 관련 문서: 인터페이스 보안
import json
from urllib.request import urlopen

# 웹 API 호출 예: GET 요청 후 JSON 응답을 파싱
with urlopen("https://api.example.com/users/1") as res:
    user = json.loads(res.read())
print(user["name"])
  • API는 응용 프로그램이 운영체제나 프로그래밍 언어의 기능을 제어할 수 있게 만든 인터페이스로 정의된다.
  • 인터페이스 연계 기술에서 API/Open API가 직접 연계 방식에 속한다는 점을 기억한다.
  • REST와 SOAP의 차이(자원·HTTP 메서드 vs XML 메시지·WSDL)를 구분한다.